From c97552b69c0af01aadc2580a59a46f58d5545985 Mon Sep 17 00:00:00 2001 From: kaiyu <404897439@qq.com> Date: Tue, 15 Sep 2020 15:06:00 +0800 Subject: [PATCH] B/S登陆以及测试接口上传 --- src/main/java/com/moral/common/webAnno/PassToken.java | 18 + /dev/null | 39 -- src/main/java/com/moral/common/interceptor/WebInterceptor.java | 106 +++++++ src/main/java/com/moral/controller/WebController.java | 16 src/main/java/com/moral/common/webAnno/UserLoginToken.java | 20 + src/main/java/com/moral/ScreenApiApplication.java | 8 src/main/java/com/moral/config/WebInterceptorConfig.java | 12 pom.xml | 568 ++++++++++++++++++++-------------------- src/main/resources/banner.txt | 23 + src/main/resources/application.yml | 4 10 files changed, 477 insertions(+), 337 deletions(-) diff --git a/pom.xml b/pom.xml index e938a1f..b9a283b 100644 --- a/pom.xml +++ b/pom.xml @@ -1,292 +1,298 @@ <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> - <modelVersion>4.0.0</modelVersion> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> +<modelVersion>4.0.0</modelVersion> - <groupId>com.moral</groupId> - <artifactId>screen_api</artifactId> - <version>2.0.0</version> - <packaging>war</packaging> +<groupId>com.moral</groupId> +<artifactId>screen_api</artifactId> +<version>2.0.0</version> +<packaging>war</packaging> - <name>screen_api</name> - <description>Screen API</description> +<name>screen_api</name> +<description>Screen API</description> - <parent> +<parent> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-parent</artifactId> + <version>1.5.8.RELEASE</version> + <relativePath/> <!-- lookup parent from repository --> +</parent> + +<properties> + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> + <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> + <java.version>1.8</java.version> +</properties> + +<repositories> + <repository> + <id>aliyunRepository</id> + <name>myRepository</name> + <url>http://maven.aliyun.com/nexus/content/groups/public/</url> + <snapshots> + <enabled>false</enabled> + </snapshots> + </repository> + + <repository> + <id>spring-milestone</id> + <url>http://repo.spring.io/libs-release</url> + </repository> +</repositories> + +<dependencies> + <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> + <dependency> + <groupId>com.google.code.gson</groupId> + <artifactId>gson</artifactId> + <version>2.8.5</version> + </dependency> + + + <dependency> <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-parent</artifactId> - <version>1.5.8.RELEASE</version> - <relativePath/> <!-- lookup parent from repository --> - </parent> + <artifactId>spring-boot-starter</artifactId> + </dependency> - <properties> - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> - <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> - <java.version>1.8</java.version> - </properties> - - <repositories> - <repository> - <id>aliyunRepository</id> - <name>myRepository</name> - <url>http://maven.aliyun.com/nexus/content/groups/public/</url> - <snapshots> - <enabled>false</enabled> - </snapshots> - </repository> - - <repository> - <id>spring-milestone</id> - <url>http://repo.spring.io/libs-release</url> - </repository> - </repositories> - - <dependencies> - <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> - <dependency> - <groupId>com.google.code.gson</groupId> - <artifactId>gson</artifactId> - <version>2.8.5</version> - </dependency> + <!-- https://mvnrepository.com/artifact/org.json/json --> + <dependency> + <groupId>org.json</groupId> + <artifactId>json</artifactId> + <version>20160810</version> + </dependency> - <dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-web</artifactId> + </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-security</artifactId> + </dependency> + + <dependency> + <groupId>org.mybatis.spring.boot</groupId> + <artifactId>mybatis-spring-boot-starter</artifactId> + <version>1.3.1</version> + </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-data-redis</artifactId> + </dependency> + + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-tomcat</artifactId> + <scope>provided</scope> + </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-test</artifactId> + <scope>test</scope> + </dependency> + + <dependency> + <groupId>org.springframework.security.oauth</groupId> + <artifactId>spring-security-oauth2</artifactId> + </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-configuration-processor</artifactId> + <optional>true</optional> + </dependency> + + <dependency> + <groupId>com.alibaba</groupId> + <artifactId>druid</artifactId> + <version>1.1.5</version> + </dependency> + + <dependency> + <groupId>mysql</groupId> + <artifactId>mysql-connector-java</artifactId> + <version>5.1.44</version> + </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-data-mongodb</artifactId> + </dependency> + <dependency> + <groupId>org.apache.commons</groupId> + <artifactId>commons-lang3</artifactId> + <version>3.5</version> + </dependency> + <dependency> + <groupId>com.alibaba</groupId> + <artifactId>fastjson</artifactId> + <version>1.2.39</version> + </dependency> + <dependency> + <groupId>net.sourceforge.jexcelapi</groupId> + <artifactId>jxl</artifactId> + <version>2.6.12</version> + </dependency> + <dependency> + <groupId>net.sf.json-lib</groupId> + <artifactId>json-lib</artifactId> + <version>2.4</version> + <classifier>jdk15</classifier> + </dependency> + <dependency> + <groupId>org.projectlombok</groupId> + <artifactId>lombok</artifactId> + <version>1.16.18</version> + </dependency> + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-aop</artifactId> + </dependency> + <dependency> + <groupId>com.github.pagehelper</groupId> + <artifactId>pagehelper</artifactId> + <version>4.2.1</version> + </dependency> + <dependency> + <groupId>tk.mybatis</groupId> + <artifactId>mapper</artifactId> + <version>3.4.6</version> + </dependency> + <dependency> + <groupId>jstl</groupId> + <artifactId>jstl</artifactId> + <version>1.2</version> + </dependency> + <dependency> + <groupId>taglibs</groupId> + <artifactId>standard</artifactId> + <version>1.1.2</version> + </dependency> + <dependency> + <groupId>org.apache.tomcat.embed</groupId> + <artifactId>tomcat-embed-jasper</artifactId> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>dom4j</groupId> + <artifactId>dom4j</artifactId> + <version>1.6.1</version> + </dependency> + <dependency> + <groupId>commons-net</groupId> + <artifactId>commons-net</artifactId> + <version>3.6</version> + </dependency> + <dependency> + <groupId>io.jsonwebtoken</groupId> + <artifactId>jjwt</artifactId> + <version>0.9.0</version> + </dependency> + <dependency> + <groupId>com.auth0</groupId> + <artifactId>java-jwt</artifactId> + <version>3.4.0</version> + </dependency> + + + <!-- ������������ --> + <dependency> + <groupId>com.taobao.api</groupId> + <artifactId>taobao-sdk</artifactId> + <version>1.0.0</version> + <scope>system</scope> + <systemPath>${project.basedir}/lib/taobao-sdk-java-auto_1455552377940-20160607.jar</systemPath> + </dependency> + + <dependency> + <groupId>io.springfox</groupId> + <artifactId>springfox-swagger2</artifactId> + <version>2.7.0</version> + </dependency> + <dependency> + <groupId>io.springfox</groupId> + <artifactId>springfox-swagger-ui</artifactId> + <version>2.7.0</version> + </dependency> + <!-- https://mvnrepository.com/artifact/com.googlecode.aviator/aviator --> + <dependency> + <groupId>com.googlecode.aviator</groupId> + <artifactId>aviator</artifactId> + <version>4.2.0</version> + </dependency> + + <dependency> + <groupId>cn.hutool</groupId> + <artifactId>hutool-all</artifactId> + <version>5.3.1</version> + </dependency> + + <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml --> + <dependency> + <groupId>org.apache.poi</groupId> + <artifactId>poi-ooxml</artifactId> + <version>4.1.2</version> + </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-amqp</artifactId> + </dependency> + + <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-websocket</artifactId> + </dependency> +</dependencies> + +<build> + <finalName>screen_api_v2</finalName> + <plugins> + <plugin> + <groupId>org.mybatis.generator</groupId> + <artifactId>mybatis-generator-maven-plugin</artifactId> + <version>1.3.2</version> + <configuration> + <!--���������������������--> + <configurationFile>src/main/resources/generatorConfig.xml</configurationFile> + <verbose>true</verbose> + <overwrite>false</overwrite> + </configuration> + <dependencies> + <dependency> + <groupId>org.mybatis.generator</groupId> + <artifactId>mybatis-generator-core</artifactId> + <version>1.3.2</version> + </dependency> + </dependencies> + </plugin> + <plugin> <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter</artifactId> - </dependency> - - <!-- https://mvnrepository.com/artifact/org.json/json --> - <dependency> - <groupId>org.json</groupId> - <artifactId>json</artifactId> - <version>20160810</version> - </dependency> - - - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-web</artifactId> - </dependency> - - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-security</artifactId> - </dependency> - - <dependency> - <groupId>org.mybatis.spring.boot</groupId> - <artifactId>mybatis-spring-boot-starter</artifactId> - <version>1.3.1</version> - </dependency> - - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-data-redis</artifactId> - </dependency> - - - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-tomcat</artifactId> - <scope>provided</scope> - </dependency> - - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-test</artifactId> - <scope>test</scope> - </dependency> - - <dependency> - <groupId>org.springframework.security.oauth</groupId> - <artifactId>spring-security-oauth2</artifactId> - </dependency> - - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-configuration-processor</artifactId> - <optional>true</optional> - </dependency> - - <dependency> - <groupId>com.alibaba</groupId> - <artifactId>druid</artifactId> - <version>1.1.5</version> - </dependency> - - <dependency> - <groupId>mysql</groupId> - <artifactId>mysql-connector-java</artifactId> - <version>5.1.44</version> - </dependency> - - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-data-mongodb</artifactId> - </dependency> - <dependency> - <groupId>org.apache.commons</groupId> - <artifactId>commons-lang3</artifactId> - <version>3.5</version> - </dependency> - <dependency> - <groupId>com.alibaba</groupId> - <artifactId>fastjson</artifactId> - <version>1.2.39</version> - </dependency> - <dependency> - <groupId>net.sourceforge.jexcelapi</groupId> - <artifactId>jxl</artifactId> - <version>2.6.12</version> - </dependency> - <dependency> - <groupId>net.sf.json-lib</groupId> - <artifactId>json-lib</artifactId> - <version>2.4</version> - <classifier>jdk15</classifier> - </dependency> - <dependency> - <groupId>org.projectlombok</groupId> - <artifactId>lombok</artifactId> - <version>1.16.18</version> - </dependency> - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-aop</artifactId> - </dependency> - <dependency> - <groupId>com.github.pagehelper</groupId> - <artifactId>pagehelper</artifactId> - <version>4.2.1</version> - </dependency> - <dependency> - <groupId>tk.mybatis</groupId> - <artifactId>mapper</artifactId> - <version>3.4.6</version> - </dependency> - <dependency> - <groupId>jstl</groupId> - <artifactId>jstl</artifactId> - <version>1.2</version> - </dependency> - <dependency> - <groupId>taglibs</groupId> - <artifactId>standard</artifactId> - <version>1.1.2</version> - </dependency> - <dependency> - <groupId>org.apache.tomcat.embed</groupId> - <artifactId>tomcat-embed-jasper</artifactId> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>dom4j</groupId> - <artifactId>dom4j</artifactId> - <version>1.6.1</version> - </dependency> - <dependency> - <groupId>commons-net</groupId> - <artifactId>commons-net</artifactId> - <version>3.6</version> - </dependency> - <dependency> - <groupId>io.jsonwebtoken</groupId> - <artifactId>jjwt</artifactId> - <version>0.9.0</version> - </dependency> - - <!-- ������������ --> - <dependency> - <groupId>com.taobao.api</groupId> - <artifactId>taobao-sdk</artifactId> - <version>1.0.0</version> - <scope>system</scope> - <systemPath>${project.basedir}/lib/taobao-sdk-java-auto_1455552377940-20160607.jar</systemPath> - </dependency> - - <dependency> - <groupId>io.springfox</groupId> - <artifactId>springfox-swagger2</artifactId> - <version>2.7.0</version> - </dependency> - <dependency> - <groupId>io.springfox</groupId> - <artifactId>springfox-swagger-ui</artifactId> - <version>2.7.0</version> - </dependency> - <!-- https://mvnrepository.com/artifact/com.googlecode.aviator/aviator --> - <dependency> - <groupId>com.googlecode.aviator</groupId> - <artifactId>aviator</artifactId> - <version>4.2.0</version> - </dependency> - - <dependency> - <groupId>cn.hutool</groupId> - <artifactId>hutool-all</artifactId> - <version>5.3.1</version> - </dependency> - - <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml --> - <dependency> - <groupId>org.apache.poi</groupId> - <artifactId>poi-ooxml</artifactId> - <version>4.1.2</version> - </dependency> - - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-amqp</artifactId> - </dependency> - - <dependency> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-starter-websocket</artifactId> - </dependency> - </dependencies> - - <build> - <finalName>screen_api_v2</finalName> - <plugins> - <plugin> - <groupId>org.mybatis.generator</groupId> - <artifactId>mybatis-generator-maven-plugin</artifactId> - <version>1.3.2</version> - <configuration> - <!--���������������������--> - <configurationFile>src/main/resources/generatorConfig.xml</configurationFile> - <verbose>true</verbose> - <overwrite>false</overwrite> - </configuration> - <dependencies> - <dependency> - <groupId>org.mybatis.generator</groupId> - <artifactId>mybatis-generator-core</artifactId> - <version>1.3.2</version> - </dependency> - </dependencies> - </plugin> - <plugin> - <groupId>org.springframework.boot</groupId> - <artifactId>spring-boot-maven-plugin</artifactId> - </plugin> - <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-dependency-plugin</artifactId> - <version>3.1.0</version> - <executions> - <execution> - <id>copy-dependencies</id> - <phase>compile</phase> - <goals> - <goal>copy-dependencies</goal> - </goals> - <configuration> - <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/lib</outputDirectory> - <includeScope>system</includeScope> - </configuration> - </execution> - </executions> - </plugin> - </plugins> - </build> + <artifactId>spring-boot-maven-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-dependency-plugin</artifactId> + <version>3.1.0</version> + <executions> + <execution> + <id>copy-dependencies</id> + <phase>compile</phase> + <goals> + <goal>copy-dependencies</goal> + </goals> + <configuration> + <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/lib</outputDirectory> + <includeScope>system</includeScope> + </configuration> + </execution> + </executions> + </plugin> + </plugins> +</build> </project> \ No newline at end of file diff --git a/src/main/java/com/moral/ScreenApiApplication.java b/src/main/java/com/moral/ScreenApiApplication.java index 2a7e881..f2b2fb0 100644 --- a/src/main/java/com/moral/ScreenApiApplication.java +++ b/src/main/java/com/moral/ScreenApiApplication.java @@ -17,14 +17,6 @@ return application.sources(ScreenApiApplication.class); } - //Session������������ - @Bean - public EmbeddedServletContainerCustomizer containerCustomizer() { - return container -> { - container.setSessionTimeout(28800);/*���������S*/ - }; - } - public static void main(String[] args) { SpringApplication.run(ScreenApiApplication.class, args); } diff --git a/src/main/java/com/moral/Webinterceptor/WebInterceptor.java b/src/main/java/com/moral/Webinterceptor/WebInterceptor.java deleted file mode 100644 index 931913a..0000000 --- a/src/main/java/com/moral/Webinterceptor/WebInterceptor.java +++ /dev/null @@ -1,39 +0,0 @@ -package com.moral.Webinterceptor; - -import com.alibaba.fastjson.JSONObject; -import org.springframework.web.servlet.HandlerInterceptor; -import org.springframework.web.servlet.ModelAndView; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import java.io.PrintWriter; -import java.util.HashMap; - -public class WebInterceptor implements HandlerInterceptor { - public static final String SESSION_KEY = "USER_LOGIN"; - - @Override - public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception { - if (request.getSession().getAttribute(SESSION_KEY) == null) { - HashMap resultMap = new HashMap<String, Object>(); - resultMap.put("msg", "���������"); - resultMap.put("accountId", -1); - JSONObject json = new JSONObject(resultMap); - response.setContentType("application/json; charset=utf-8"); - PrintWriter writer = response.getWriter(); - writer.write(json.toString()); - return false; - } - return true; - } - - @Override - public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception { - - } - - @Override - public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception { - - } -} diff --git a/src/main/java/com/moral/common/interceptor/WebInterceptor.java b/src/main/java/com/moral/common/interceptor/WebInterceptor.java new file mode 100644 index 0000000..0255cd8 --- /dev/null +++ b/src/main/java/com/moral/common/interceptor/WebInterceptor.java @@ -0,0 +1,106 @@ +package com.moral.common.interceptor; + +import com.auth0.jwt.JWT; +import com.auth0.jwt.JWTVerifier; +import com.auth0.jwt.algorithms.Algorithm; +import com.auth0.jwt.exceptions.JWTDecodeException; +import com.auth0.jwt.exceptions.JWTVerificationException; +import com.auth0.jwt.interfaces.Claim; +import com.moral.common.exception.WebAuthException; +import com.moral.common.webAnno.PassToken; +import com.moral.common.webAnno.UserLoginToken; +import com.moral.entity.Account; +import com.moral.service.AccountService; +import com.moral.service.impl.WebTokenServiceImpl; +import org.springframework.util.ObjectUtils; +import org.springframework.web.method.HandlerMethod; +import org.springframework.web.servlet.HandlerInterceptor; +import org.springframework.web.servlet.ModelAndView; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.lang.reflect.Method; +import java.util.Enumeration; +import java.util.Map; + +/** +* @Description: + * @Param: Web������������������������ + * @return: + * @Author: ��������� + * @Date: 2020/9/14 + */ +public class WebInterceptor implements HandlerInterceptor { + @Resource + AccountService accountService; + + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception { + String token = request.getHeader("token"); + Enumeration<String> headerNames = request.getHeaderNames(); + //������������������������������������������ + if(!(o instanceof HandlerMethod)){ + return true; + } + HandlerMethod handlerMethod = (HandlerMethod)o; + Method method = handlerMethod.getMethod(); + + //���������passtoken��������������� + if(method.isAnnotationPresent(PassToken.class)){ + PassToken passToken= method.getAnnotation(PassToken.class); + //������������������������ + if(passToken.required()) + return true; + } + + //��������������������������������������� + if(method.isAnnotationPresent(UserLoginToken.class)){ + //������������������������ + UserLoginToken loginToken = method.getAnnotation(UserLoginToken.class); + if(loginToken.required()){ + if(ObjectUtils.isEmpty(token)){ + throw new WebAuthException("���token������������������"); + } + //������ID + String id = ""; + try { + Map<String, Claim> claims = JWT.decode(token).getClaims(); + Claim accountId = claims.get("aid"); + id = accountId.asString(); + }catch (JWTDecodeException e){ + throw new WebAuthException("401,token������"); + } + Account account = accountService.getAccountById(Integer.parseInt(id)); + if(ObjectUtils.isEmpty(account)){ + throw new WebAuthException("���������������������������������"); + } + + //������token + Algorithm algorithm = Algorithm.HMAC256(WebTokenServiceImpl.SECRET); + JWTVerifier jwtVerifier = JWT.require(algorithm) + .withIssuer("qxpc") + .build(); + try{ + jwtVerifier.verify(token); + }catch (JWTVerificationException e){ + throw new WebAuthException("401,token������������������"); + } + + return true; + } + } + return true; + + } + + @Override + public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception { + + } + + @Override + public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception { + + } +} diff --git a/src/main/java/com/moral/common/webAnno/PassToken.java b/src/main/java/com/moral/common/webAnno/PassToken.java new file mode 100644 index 0000000..affa139 --- /dev/null +++ b/src/main/java/com/moral/common/webAnno/PassToken.java @@ -0,0 +1,18 @@ +package com.moral.common.webAnno; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +/** +* @Description: ���������web������������������ + * @Param: + * @return: + * @Author: ��������� + * @Date: 2020/9/14 + */ +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +public @interface PassToken { + boolean required() default true; +} diff --git a/src/main/java/com/moral/common/webAnno/UserLoginToken.java b/src/main/java/com/moral/common/webAnno/UserLoginToken.java new file mode 100644 index 0000000..09eecc9 --- /dev/null +++ b/src/main/java/com/moral/common/webAnno/UserLoginToken.java @@ -0,0 +1,20 @@ +package com.moral.common.webAnno; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** +* @Description: ���������web������������������������������������������������������ + * @Param: + * @return: + * @Author: ��������� + * @Date: 2020/9/14 + */ +@Target({ElementType.METHOD, ElementType.TYPE}) +@Retention(RetentionPolicy.RUNTIME) +public @interface UserLoginToken { + boolean required() default true; +} + diff --git a/src/main/java/com/moral/config/WebLoginConfig.java b/src/main/java/com/moral/config/WebInterceptorConfig.java similarity index 87% rename from src/main/java/com/moral/config/WebLoginConfig.java rename to src/main/java/com/moral/config/WebInterceptorConfig.java index 35960c8..5e90bab 100644 --- a/src/main/java/com/moral/config/WebLoginConfig.java +++ b/src/main/java/com/moral/config/WebInterceptorConfig.java @@ -1,6 +1,7 @@ package com.moral.config; -import com.moral.Webinterceptor.WebInterceptor; +import com.moral.common.interceptor.WebInterceptor; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.format.FormatterRegistry; import org.springframework.http.converter.HttpMessageConverter; @@ -9,16 +10,21 @@ import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.method.support.HandlerMethodReturnValueHandler; import org.springframework.web.servlet.HandlerExceptionResolver; +import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.config.annotation.*; import java.util.List; @Configuration -public class WebLoginConfig implements WebMvcConfigurer { +public class WebInterceptorConfig implements WebMvcConfigurer { + @Bean + public HandlerInterceptor getTokenInterceptor(){ + return new WebInterceptor(); + } @Override public void addInterceptors(InterceptorRegistry interceptorRegistry) { - InterceptorRegistration registration = interceptorRegistry.addInterceptor(new WebInterceptor()); + InterceptorRegistration registration = interceptorRegistry.addInterceptor(getTokenInterceptor()); registration.addPathPatterns("/web/**"); registration.excludePathPatterns("/web/login"); } diff --git a/src/main/java/com/moral/controller/WebController.java b/src/main/java/com/moral/controller/WebController.java index fcec4ca..de4f6df 100644 --- a/src/main/java/com/moral/controller/WebController.java +++ b/src/main/java/com/moral/controller/WebController.java @@ -1,13 +1,15 @@ package com.moral.controller; -import com.moral.Webinterceptor.WebInterceptor; import com.moral.common.util.BeanUtils; +import com.moral.common.webAnno.UserLoginToken; import com.moral.entity.AreaNames; import com.moral.entity.Organization; import com.moral.service.AccountService; import com.moral.service.DictionaryDataService; import com.moral.service.OrganizationService; +import com.moral.service.WebTokenService; import org.springframework.web.bind.annotation.CrossOrigin; +import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -30,6 +32,8 @@ @Resource DictionaryDataService dictionaryDataService; OrganizationService organizationService; + @Resource + WebTokenService webTokenService; @RequestMapping("login") public Map<String, Object> login(HttpServletRequest request){ @@ -44,7 +48,9 @@ Object orgId = resultMap.get("orgId"); if (resultMap.get("orgId") != null && resultMap.get("orgId") instanceof Integer) { StringBuilder areaNamesBuilder = new StringBuilder("������"); + //��������������������������������� if (!((Integer) orgId).equals(dictionaryDataService.querySupperOrgId())) { + //��������������������������������������������������� Organization organization = organizationService.getOrganizationById((Integer) orgId); if (organization.getAreaNames() != null) { Map<String, String> areaNameMap = BeanUtils.beanToMap(organization.getAreaNames()); @@ -78,14 +84,16 @@ resultMap.put("mapAreaCode", mapAreaCode.toString()); } resultMap.put("mapPath", areaNamesBuilder.toString()); + String accountId= String.valueOf(resultMap.get("accountId")); + resultMap.put("token",webTokenService.getToken(accountId)); } } - request.getSession().setAttribute(WebInterceptor.SESSION_KEY,resultMap); return resultMap; } - @RequestMapping("add") + @UserLoginToken + @GetMapping("test") public String add(){ - return "123123"; + return "test success!"; } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index ccef0eb..d44149a 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -53,9 +53,9 @@ password: guest channelCacheSize: 10 redis: - host: 47.100.8.247 + host: r-bp1672d21a422a14pd.redis.rds.aliyuncs.com port: 6379 - password: moral_2018 + password: KtElFcI1sYm9NP3 database: 1 timeout: 5000 pool: diff --git a/src/main/resources/banner.txt b/src/main/resources/banner.txt new file mode 100644 index 0000000..8c33c24 --- /dev/null +++ b/src/main/resources/banner.txt @@ -0,0 +1,23 @@ +${AnsiColor.BRIGHT_BLACK} +//////////////////////////////////////////////////////////////////// +// _ooOoo_ // +// o8888888o // +// 88" . "88 // +// (| ^_^ |) // +// O\ = /O // +// ____/`---'\____ // +// .' \\| |// `. // +// / \\||| : |||// \ // +// / _||||| -:- |||||- \ // +// | | \\\ - /// | | // +// | \_| ''\---/'' | | // +// \ .-\__ `-` ___/-. / // +// ___`. .' /--.--\ `. . ___ // +// ."" '< `.___\_<|>_/___.' >'"". // +// | | : `- \`.;`\ _ /`;.`/ - ` : | | // +// \ \ `-. \_ __\ /__ _/ .-` / / // +// ========`-.____`-.___\_____/___.-`____.-'======== // +// `=---=' // +// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // +// ������������ ������������ ������BUG // +//////////////////////////////////////////////////////////////////// \ No newline at end of file -- Gitblit v1.8.0