consumer-jdGiftCoupon/pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
consumer-jdGiftCoupon/src/main/java/com/ks/consumerjdgiftcoupon/config/Swagger2Config.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
consumer-jdGiftCoupon/src/main/java/com/ks/consumerjdgiftcoupon/config/WebSecurityConfig.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
consumer-jdGiftCoupon/src/main/java/com/ks/consumerjdgiftcoupon/controller/TestController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
consumer-jdGiftCoupon/src/main/java/com/ks/consumerjdgiftcoupon/query/TestQuery.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
consumer-jdGiftCoupon/pom.xml
@@ -36,6 +36,21 @@ </exclusion> </exclusions> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency> </dependencies> <build> consumer-jdGiftCoupon/src/main/java/com/ks/consumerjdgiftcoupon/config/Swagger2Config.java
New file @@ -0,0 +1,34 @@ package com.ks.consumerjdgiftcoupon.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; @Configuration @EnableSwagger2 public class Swagger2Config { @Bean Docket docket() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.basePackage("com.ks.consumerjdgiftcoupon.controller")) .paths(PathSelectors.any()) .build().apiInfo(new ApiInfoBuilder() //网站描述 .description("接口文档的描述信息") .title("微人事项目接口文档") //联系人信息 .contact(new Contact("yolo", "blog.csdn.net", "xxxx@gmail.com")) //版本 .version("v1.0") .license("Apache2.0") .build()); } } consumer-jdGiftCoupon/src/main/java/com/ks/consumerjdgiftcoupon/config/WebSecurityConfig.java
New file @@ -0,0 +1,89 @@ package com.ks.consumerjdgiftcoupon.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.authentication.AuthenticationProvider; import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.core.Authentication; import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; @Configuration @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { class CustomUserService implements UserDetailsService { @Override public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException { //通过名称查询用户 return null; } } class CustomAuth implements AuthenticationProvider { @Override public Authentication authenticate(Authentication authentication) throws AuthenticationException { authentication.setAuthenticated(true); return authentication; } @Override public boolean supports(Class<?> aClass) { return true; } } @Bean UserDetailsService customUserService() { return new CustomUserService(); } @Bean AuthenticationProvider customAuth() { return new CustomAuth(); } /** * 定义用户认证规则 * * @param auth * @throws Exception */ @Override protected void configure(AuthenticationManagerBuilder auth) throws Exception { auth.userDetailsService(customUserService()); auth.authenticationProvider(customAuth()); } /** * 定义授权规则 * * @param http * @throws Exception */ @Override protected void configure(HttpSecurity http) throws Exception { http .authorizeRequests() .antMatchers("/", "/home").permitAll() .anyRequest().authenticated() .and() .formLogin() // .loginPage("/login") .permitAll() .and() .logout() .permitAll(); } } consumer-jdGiftCoupon/src/main/java/com/ks/consumerjdgiftcoupon/controller/TestController.java
@@ -1,6 +1,8 @@ package com.ks.consumerjdgiftcoupon.controller; import com.ks.consumerjdgiftcoupon.query.TestQuery; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.RequestMapping; @@ -8,10 +10,11 @@ import javax.validation.Valid; @Api(tags = "测试数据接口") @Controller @RequestMapping("test") public class TestController { @ApiOperation(value = "测试", notes = "测试字段验证") @RequestMapping("valid") @ResponseBody public String valid(@Valid TestQuery query, BindingResult bindingResult) { consumer-jdGiftCoupon/src/main/java/com/ks/consumerjdgiftcoupon/query/TestQuery.java
@@ -1,9 +1,13 @@ package com.ks.consumerjdgiftcoupon.query; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import javax.validation.constraints.*; import java.math.BigDecimal; import java.util.Date; @ApiModel(value = "测试查询",description = "测试查询") public class TestQuery { // @AssertFalse(message = "所注解的元素必须是Boolean类型,且值为false") @@ -14,24 +18,30 @@ // @Future(message = "日期是否在当前时间之后") @ApiModelProperty(value = "昵称") @NotEmpty(message = "注册失败,名字不能为空") private String name; @ApiModelProperty(value = "年龄") @Max(value = 19, message = "该字段最大值为19") @Min(value = 0, message = "该字段最小值为0") private int age; @ApiModelProperty(value = "身高") @DecimalMax(value = "3.00", message = "所注解的元素必须是数字,且值小于等于给定的值") @DecimalMin(value = "0.00", message = "所注解的元素必须是数字,且值大于等于给定的值") private BigDecimal height; @ApiModelProperty(value = "出生日期") @Past(message = "出生日期不能大于当前日期") private Date birthday; @ApiModelProperty(value = "邮箱") @Email(message = "邮件格式有误") private String email;//邮件 @ApiModelProperty(value = "签名") @Pattern(regexp = "[abc]", message = "正则不匹配") private String sign; pom.xml
@@ -35,6 +35,12 @@ <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--安全框架 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> @@ -46,6 +52,8 @@ <artifactId>spring-boot-starter-validation</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId>