From 98fd519b7384c91ea6d33c00c3cdba1795b22e53 Mon Sep 17 00:00:00 2001 From: SZH <szh_hello@163.com> Date: 星期一, 27 六月 2022 19:05:52 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- emergency/pom.xml | 19 ++ safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/accountController/LoginController.java | 27 +++ emergency/emergency-rpc-api/pom.xml | 15 + safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/security/TokenAuthenticationFilter.java | 302 ++++++++++++++++----------------- safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/security/WebSecurityConfig.java | 19 - emergency/emergency-rpc-provider/src/main/java/com/gkhy/safePlatform/emergency/rpc/provider/EmergencyDemoRpcProvider.java | 2 safePlatfrom-out-web/src/main/resources/config/application-dev.yaml | 15 + emergency/emergency-service/pom.xml | 6 emergency/emergency-rpc-provider/pom.xml | 7 emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/controller/Test.java | 6 goal-manage/goal-manage-rpc-api/pom.xml | 15 + goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/goalManage/model/dto/req/CreateGoalReqDTO.java | 4 goal-manage/pom.xml | 16 + safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/security/TokenConfig.java | 76 ++++++++ 14 files changed, 340 insertions(+), 189 deletions(-) diff --git a/emergency/emergency-rpc-api/pom.xml b/emergency/emergency-rpc-api/pom.xml index 05936e9..3e5e275 100644 --- a/emergency/emergency-rpc-api/pom.xml +++ b/emergency/emergency-rpc-api/pom.xml @@ -2,15 +2,18 @@ <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"> - <parent> - <artifactId>emergency</artifactId> - <groupId>com.gkhy.safePlatfrom</groupId> - <version>1.0-SNAPSHOT</version> - </parent> +<!-- <parent>--> +<!-- <artifactId>emergency</artifactId>--> +<!-- <groupId>com.gkhy.safePlatfrom</groupId>--> +<!-- <version>1.0-SNAPSHOT</version>--> +<!-- </parent>--> <modelVersion>4.0.0</modelVersion> <packaging>jar</packaging> + <groupId>com.gkhy.safePlatfrom</groupId> <artifactId>emergency-rpc-api</artifactId> + <version>1.0-SNAPSHOT</version> + <distributionManagement> <!--稳定版本的仓库地址,必须是允许上传的私服地址--> @@ -73,4 +76,4 @@ </build> -</project> \ No newline at end of file +</project> diff --git a/emergency/emergency-rpc-provider/pom.xml b/emergency/emergency-rpc-provider/pom.xml index e481007..ca06c2e 100644 --- a/emergency/emergency-rpc-provider/pom.xml +++ b/emergency/emergency-rpc-provider/pom.xml @@ -17,7 +17,12 @@ <groupId>com.gkhy.safePlatfrom</groupId> <artifactId>emergency-rpc-api</artifactId> </dependency> + <dependency> + <groupId>com.gkhy.safePlatfrom</groupId> + <artifactId>emergency-service</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> </dependencies> -</project> \ No newline at end of file +</project> diff --git a/emergency/emergency-rpc-provider/src/main/java/com/gkhy/safePlatform/emergency/rpc/provider/EmergencyDemoRpcProvider.java b/emergency/emergency-rpc-provider/src/main/java/com/gkhy/safePlatform/emergency/rpc/provider/EmergencyDemoRpcProvider.java index 744d278..1b84a95 100644 --- a/emergency/emergency-rpc-provider/src/main/java/com/gkhy/safePlatform/emergency/rpc/provider/EmergencyDemoRpcProvider.java +++ b/emergency/emergency-rpc-provider/src/main/java/com/gkhy/safePlatform/emergency/rpc/provider/EmergencyDemoRpcProvider.java @@ -8,6 +8,8 @@ @DubboService public class EmergencyDemoRpcProvider implements EmergencyDemoRpcAPi { + + @Override public String sayHello(User user) { if(user == null) diff --git a/emergency/emergency-service/pom.xml b/emergency/emergency-service/pom.xml index 7154fa8..a91f4c3 100644 --- a/emergency/emergency-service/pom.xml +++ b/emergency/emergency-service/pom.xml @@ -19,7 +19,11 @@ <artifactId>emergency-rpc-api</artifactId> <version>1.0-SNAPSHOT</version> </dependency> + <dependency> + <groupId>com.gkhy.safePlatfrom</groupId> + <artifactId>account-rpc-api</artifactId> + </dependency> </dependencies> -</project> \ No newline at end of file +</project> diff --git a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/controller/Test.java b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/controller/Test.java index 821dc7c..9cc6852 100644 --- a/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/controller/Test.java +++ b/emergency/emergency-service/src/main/java/com/gkhy/safePlatform/emergency/controller/Test.java @@ -1,6 +1,6 @@ package com.gkhy.safePlatform.emergency.controller; -import com.gkhy.safePlatform.account.rpc.apimodel.NameService; +import com.gkhy.safePlatform.account.rpc.apimodel.UserAccountService; import org.apache.dubbo.config.annotation.DubboReference; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; @@ -13,14 +13,14 @@ public class Test { @DubboReference(check = false) - private NameService nameService; + private UserAccountService userAccountService; // private Logger logger = LogManager.getLogger(Test.class); @RequestMapping(value = "/t/rpc",method = RequestMethod.GET) public Object testRpc(String id){ - String resp = nameService.sayName(id); + String resp = userAccountService.sayName(id); return resp; } } diff --git a/emergency/pom.xml b/emergency/pom.xml index 908322e..16cbcd8 100644 --- a/emergency/pom.xml +++ b/emergency/pom.xml @@ -17,5 +17,22 @@ <module>emergency-rpc-provider</module> </modules> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>com.gkhy.safePlatfrom</groupId> + <artifactId>account-rpc-api</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + </dependencies> + </dependencyManagement> -</project> \ No newline at end of file + <dependencies> + <dependency> + <groupId>com.gkhy.safePlatfrom</groupId> + <artifactId>account-rpc-api</artifactId> + </dependency> + </dependencies> + + +</project> diff --git a/goal-manage/goal-manage-rpc-api/pom.xml b/goal-manage/goal-manage-rpc-api/pom.xml index a7cb4cf..3ad198b 100644 --- a/goal-manage/goal-manage-rpc-api/pom.xml +++ b/goal-manage/goal-manage-rpc-api/pom.xml @@ -2,16 +2,19 @@ <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"> - <parent> - <artifactId>goal-manage</artifactId> - <groupId>com.gkhy.safePlatfrom</groupId> - <version>1.0-SNAPSHOT</version> - </parent> +<!-- <parent>--> +<!-- <artifactId>goal-manage</artifactId>--> +<!-- <groupId>com.gkhy.safePlatfrom</groupId>--> +<!-- <version>1.0-SNAPSHOT</version>--> +<!-- </parent>--> <modelVersion>4.0.0</modelVersion> <packaging>jar</packaging> + <groupId>com.gkhy.safePlatfrom</groupId> <artifactId>goal-manage-rpc-api</artifactId> + <version>1.0-SNAPSHOT</version> + <distributionManagement> <!--稳定版本的仓库地址,必须是允许上传的私服地址--> @@ -74,4 +77,4 @@ </build> -</project> \ No newline at end of file +</project> diff --git a/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/goalManage/model/dto/req/CreateGoalReqDTO.java b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/goalManage/model/dto/req/CreateGoalReqDTO.java new file mode 100644 index 0000000..04c8b99 --- /dev/null +++ b/goal-manage/goal-manage-service/src/main/java/com/gkhy/safePlatform/goalManage/model/dto/req/CreateGoalReqDTO.java @@ -0,0 +1,4 @@ +package com.gkhy.safePlatform.goalManage.model.dto.req; + +public class CreateGoalReqDTO { +} diff --git a/goal-manage/pom.xml b/goal-manage/pom.xml index cbd44f7..8efe0cc 100644 --- a/goal-manage/pom.xml +++ b/goal-manage/pom.xml @@ -17,12 +17,26 @@ <module>goal-manage-rpc-provider</module> </modules> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>com.gkhy.safePlatfrom</groupId> + <artifactId>account-rpc-api</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + </dependencies> + </dependencyManagement> + <dependencies> <dependency> <groupId>com.gkhy.safePlatfrom</groupId> <artifactId>emergency-rpc-api</artifactId> </dependency> + <dependency> + <groupId>com.gkhy.safePlatfrom</groupId> + <artifactId>account-rpc-api</artifactId> + </dependency> </dependencies> -</project> \ No newline at end of file +</project> diff --git a/safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/accountController/LoginController.java b/safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/accountController/LoginController.java new file mode 100644 index 0000000..e257ec2 --- /dev/null +++ b/safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/accountController/LoginController.java @@ -0,0 +1,27 @@ +package com.gkhy.safePlatform.accountController; + +import com.alibaba.fastjson.JSONObject; +import com.gkhy.safePlatform.account.rpc.apimodel.UserAccountService; +import com.gkhy.safePlatform.account.rpc.apimodel.model.UserLoginRespDTO; +import com.gkhy.safePlatform.commons.vo.ResultVO; +import org.apache.dubbo.config.annotation.DubboReference; +import org.apache.dubbo.config.annotation.DubboService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/auth") +public class LoginController { + + @DubboReference(check = false) + private UserAccountService userAccountService; + + @RequestMapping("/login") + public ResultVO<UserLoginRespDTO> authLogin(@RequestBody JSONObject loginForm){ + String username = loginForm.getString("username"); + String password = loginForm.getString("password"); + return userAccountService.authLogin(username, password); + } +} diff --git a/safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/security/TokenAuthenticationFilter.java b/safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/security/TokenAuthenticationFilter.java index c9bd858..874b46f 100644 --- a/safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/security/TokenAuthenticationFilter.java +++ b/safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/security/TokenAuthenticationFilter.java @@ -1,155 +1,147 @@ -//package com.gkhy.safePlatform.config.security; -// -//import com.alibaba.fastjson.JSONArray; -//import com.alibaba.fastjson.JSONObject; -//import com.gkhy.safePlatform.account.model.cache.CacheUser; -//import com.gkhy.safePlatform.account.rpc.apimodel.NameService; -//import com.gkhy.safePlatform.commons.config.token.TokenConfig; -//import com.gkhy.safePlatform.commons.enums.RedisKeyEnum; -//import com.gkhy.safePlatform.commons.enums.ResultCodes; -//import com.gkhy.safePlatform.commons.exception.BusinessException; -//import com.gkhy.safePlatform.commons.utils.RedisUtils; -//import com.gkhy.safePlatform.commons.utils.StringUtils; -//import com.gkhy.safePlatform.commons.vo.ResultVO; -//import org.apache.dubbo.config.annotation.DubboReference; -//import org.springframework.beans.factory.annotation.Autowired; -//import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; -//import org.springframework.security.core.GrantedAuthority; -//import org.springframework.security.core.authority.SimpleGrantedAuthority; -//import org.springframework.security.core.context.SecurityContextHolder; -//import org.springframework.stereotype.Component; -//import org.springframework.web.filter.OncePerRequestFilter; -// -//import javax.servlet.FilterChain; -//import javax.servlet.ServletException; -//import javax.servlet.http.HttpServletRequest; -//import javax.servlet.http.HttpServletResponse; -//import java.io.IOException; -//import java.io.PrintWriter; -//import java.util.ArrayList; -//import java.util.List; -// -///** -//* @Description: token登录过滤器 -//*/ -//@Component -//public class TokenAuthenticationFilter extends OncePerRequestFilter { -// -// @Autowired -// private TokenConfig tokenConfig; -// @Autowired -// private RedisUtils redisUtil; -// @DubboReference(check = false) -// private NameService nameService; -// -// -// -// @Override -// protected void doFilterInternal(HttpServletRequest req, HttpServletResponse resp, FilterChain chain) throws IOException, ServletException { -// -// try { -// //获取当前认证成功用户权限信息 -// UsernamePasswordAuthenticationToken authRequest = getAuthentication(req, resp); -// if (authRequest != null) { -// SecurityContextHolder.getContext().setAuthentication(authRequest); -// } -// // 执行下一个 filter 过滤器链 -// chain.doFilter(req, resp); -// } catch (BusinessException e) { -// // 返回异常 -// this.writeJSON(req, resp, new ResultVO<>(e.getError())); -// } catch (Exception e) { -// e.printStackTrace(); -// this.writeJSON(req, resp, new ResultVO<>(ResultCodes.SERVER_ERROR)); -// } -// -// -// } -// -// -// private UsernamePasswordAuthenticationToken getAuthentication(HttpServletRequest req,HttpServletResponse resp) { -// // header获取token -// String authToken = req.getHeader(tokenConfig.getHeader()); -// String loginUserId = req.getHeader(tokenConfig.getLoginUserHeader()); -// -// if(authToken != null) { -// // header 传入 userId -// if (StringUtils.isBlank(loginUserId)) { -// throw new BusinessException(ResultCodes.CLIENT_CREDENTIALS_LACK); -// } -// // 登录成功时,会将权限数据存入redis -// // 这里是验证获取权限信息 -// // 1.从redis中获取对应该用户的权限信息 -// String accessTokenKey = RedisKeyEnum.authKey(RedisKeyEnum.AUTH_TOKEN, loginUserId); -// Object o = redisUtil.get(accessTokenKey); -// // 2.token是否存在 -// if (o == null) { -// // 是否存在 -// throw new BusinessException(ResultCodes.CLIENT_CREDENTIALS_SIGN_INVALID); -// }else{ -// Long userId = Long.valueOf(loginUserId); -// CacheUser cacheUser = JSONObject.parseObject(o.toString(), CacheUser.class); -// assert userId.equals(cacheUser.getUserId()); -// if ( !authToken.equals(cacheUser.getAccessToken())) { -// throw new BusinessException(ResultCodes.CLIENT_CREDENTIALS_TOKEN_INVALID); -// } -// -// // 3.redis获取权限 -// String authoritiesKey = RedisKeyEnum.authKey(RedisKeyEnum.AUTH_AUTHORITIES, userId); -// Object oo = redisUtil.get(authoritiesKey); -// List<GrantedAuthority> authorities; -// // 4.redis中是否存在 -// if (oo != null) { -// // 5.存在 -// String json = oo.toString(); -// authorities = JSONArray.parseArray(json, GrantedAuthority.class); -// }else { -// authorities = new ArrayList<>(); -// // 6.不存在=>数据库查询 -// List<String> roleCodes = nameService.getUserRoleCodeByUserId(userId); -// // role -// for (String roleCode : roleCodes) { -// SimpleGrantedAuthority simpleGrantedAuthority = new SimpleGrantedAuthority("ROLE_" + roleCode); -// authorities.add(simpleGrantedAuthority); -// } -// -// // permission -// List<String> permissions = nameService.getUserPermissionByUserId(userId); -// for (String permission : permissions) { -// SimpleGrantedAuthority simpleGrantedAuthority = new SimpleGrantedAuthority(permission); -// authorities.add(simpleGrantedAuthority); -// } -// } -// -// // security对象中存入登陆者信息 -// return new UsernamePasswordAuthenticationToken(userId,authToken,authorities); -// -// } -// -// -// -// -// -// -// } -// return null; -// } -// -// -// -// protected void writeJSON(HttpServletRequest req, -// HttpServletResponse resp, -// ResultVO resultVO) throws IOException { -// // 设置编码格式 -// resp.setContentType("text/json;charset=utf-8"); -// // 处理跨域问题 -// resp.setHeader("Access-Control-Allow-Origin", "*"); -// resp.setHeader("Access-Control-Allow-Methods", "POST, GET"); -// -// //输出JSON -// PrintWriter out = resp.getWriter(); -// out.write(JSONObject.toJSONString(resultVO)); -// out.flush(); -// out.close(); -// } -//} +package com.gkhy.safePlatform.config.security; + +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.gkhy.safePlatform.account.rpc.apimodel.UserAccountService; +import com.gkhy.safePlatform.commons.co.CacheUser; +import com.gkhy.safePlatform.commons.enums.RedisKeyEnum; +import com.gkhy.safePlatform.commons.enums.ResultCodes; +import com.gkhy.safePlatform.commons.exception.BusinessException; +import com.gkhy.safePlatform.commons.utils.StringUtils; +import com.gkhy.safePlatform.commons.vo.ResultVO; +import org.apache.dubbo.config.annotation.DubboReference; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Component; +import org.springframework.web.filter.OncePerRequestFilter; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.PrintWriter; +import java.util.ArrayList; +import java.util.List; + +/** +* @Description: token登录过滤器 +*/ +@Component +public class TokenAuthenticationFilter extends OncePerRequestFilter { + + @Autowired + private TokenConfig tokenConfig; + @DubboReference(check = false) + private UserAccountService userAccountService; + + + + @Override + protected void doFilterInternal(HttpServletRequest req, HttpServletResponse resp, FilterChain chain) throws IOException, ServletException { + + try { + //获取当前认证成功用户权限信息 + UsernamePasswordAuthenticationToken authRequest = getAuthentication(req, resp); + if (authRequest != null) { + SecurityContextHolder.getContext().setAuthentication(authRequest); + } + // 执行下一个 filter 过滤器链 + chain.doFilter(req, resp); + } catch (BusinessException e) { + // 返回异常 + this.writeJSON(req, resp, new ResultVO<>(e.getError())); + } catch (Exception e) { + e.printStackTrace(); + this.writeJSON(req, resp, new ResultVO<>(ResultCodes.SERVER_ERROR)); + } + + + } + + + private UsernamePasswordAuthenticationToken getAuthentication(HttpServletRequest req,HttpServletResponse resp) { + // header获取token + String authToken = req.getHeader(tokenConfig.getHeader()); + String loginUserId = req.getHeader(tokenConfig.getLoginUserHeader()); + + if(authToken != null) { + // header 传入 userId + if (StringUtils.isBlank(loginUserId)) { + throw new BusinessException(ResultCodes.CLIENT_CREDENTIALS_LACK); + } + // 登录成功时,会将权限数据存入redis + // 这里是验证获取权限信息 + // 1.从redis中获取对应该用户的权限信息 + String accessTokenKey = RedisKeyEnum.authKey(RedisKeyEnum.AUTH_TOKEN, loginUserId); + String o = userAccountService.getValueByKeyFromRedis(accessTokenKey); + // 2.token是否存在 + if (o == null) { + // 是否存在 + throw new BusinessException(ResultCodes.CLIENT_CREDENTIALS_SIGN_INVALID); + }else{ + Long userId = Long.valueOf(loginUserId); + CacheUser cacheUser = JSONObject.parseObject(o, CacheUser.class); + assert userId.equals(cacheUser.getUserId()); + if ( !authToken.equals(cacheUser.getAccessToken())) { + throw new BusinessException(ResultCodes.CLIENT_CREDENTIALS_TOKEN_INVALID); + } + + // 3.redis获取权限 + String authoritiesKey = RedisKeyEnum.authKey(RedisKeyEnum.AUTH_AUTHORITIES, userId); + String oo = userAccountService.getValueByKeyFromRedis(authoritiesKey); + List<GrantedAuthority> authorities; + // 4.redis中是否存在 + if (oo != null) { + // 5.存在 + authorities = JSONArray.parseArray(oo, GrantedAuthority.class); + }else { + authorities = new ArrayList<>(); + // 6.不存在=>数据库查询 + String roleCode = userAccountService.getUserRoleCodeByUserId(userId); + // role + authorities.add(new SimpleGrantedAuthority("ROLE_" + roleCode)); + + // permission + List<String> permissions = userAccountService.getUserPermissionByUserId(userId); + for (String permission : permissions) { + SimpleGrantedAuthority simpleGrantedAuthority = new SimpleGrantedAuthority(permission); + authorities.add(simpleGrantedAuthority); + } + } + + // security对象中存入登陆者信息 + return new UsernamePasswordAuthenticationToken(userId,authToken,authorities); + + } + + + + + + + } + return null; + } + + + + protected void writeJSON(HttpServletRequest req, + HttpServletResponse resp, + ResultVO resultVO) throws IOException { + // 设置编码格式 + resp.setContentType("text/json;charset=utf-8"); + // 处理跨域问题 + resp.setHeader("Access-Control-Allow-Origin", "*"); + resp.setHeader("Access-Control-Allow-Methods", "POST, GET"); + + //输出JSON + PrintWriter out = resp.getWriter(); + out.write(JSONObject.toJSONString(resultVO)); + out.flush(); + out.close(); + } +} diff --git a/safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/security/TokenConfig.java b/safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/security/TokenConfig.java new file mode 100644 index 0000000..f443806 --- /dev/null +++ b/safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/security/TokenConfig.java @@ -0,0 +1,76 @@ +package com.gkhy.safePlatform.config.security; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + + +/** +* @Description: jwt工具类 +* @date 2022/6/14 10:34 +*/ +@Component +public class TokenConfig { + + + @Value("${token.secret}") + private String secret; + @Value("${token.expiration}") + private Long expiration; + @Value("${token.refreshExpiration}") + private Long refreshExpiration; + @Value("${token.header}") + private String header; + @Value("${token.tokenHead}") + private String tokenHead; + @Value("${token.loginUserHeader}") + private String loginUserHeader; + + + public String getSecret() { + return secret; + } + + public void setSecret(String secret) { + this.secret = secret; + } + + public Long getExpiration() { + return expiration; + } + + public void setExpiration(Long expiration) { + this.expiration = expiration; + } + + public Long getRefreshExpiration() { + return refreshExpiration; + } + + public void setRefreshExpiration(Long refreshExpiration) { + this.refreshExpiration = refreshExpiration; + } + + public String getHeader() { + return header; + } + + public void setHeader(String header) { + this.header = header; + } + + public String getTokenHead() { + return tokenHead; + } + + public void setTokenHead(String tokenHead) { + this.tokenHead = tokenHead; + } + + public String getLoginUserHeader() { + return loginUserHeader; + } + + public void setLoginUserHeader(String loginUserHeader) { + this.loginUserHeader = loginUserHeader; + } +} diff --git a/safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/security/WebSecurityConfig.java b/safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/security/WebSecurityConfig.java index d152a68..3c6ef70 100644 --- a/safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/security/WebSecurityConfig.java +++ b/safePlatfrom-out-web/src/main/java/com/gkhy/safePlatform/config/security/WebSecurityConfig.java @@ -1,6 +1,6 @@ package com.gkhy.safePlatform.config.security; -import com.gkhy.safePlatform.account.rpc.apimodel.NameService; +import com.gkhy.safePlatform.account.rpc.apimodel.UserAccountService; import com.gkhy.safePlatform.config.security.customzie.CustomizeAccessDeniedHandler; import com.gkhy.safePlatform.config.security.customzie.CustomizeAuthenticationEntryPoint; import org.apache.dubbo.config.annotation.DubboReference; @@ -14,6 +14,7 @@ import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; import org.springframework.security.config.http.SessionCreationPolicy; +import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; @@ -30,12 +31,8 @@ @Resource private CustomizeAuthenticationEntryPoint authenticationEntryPoint; -// @Resource -// private TokenAuthenticationFilter tokenAuthenticationFilter; - - @DubboReference(check = false) - private NameService nameService; - + @Resource + private TokenAuthenticationFilter tokenAuthenticationFilter; @@ -48,15 +45,15 @@ // 关闭session http.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS); // 登录json放行 - http.authorizeRequests().anyRequest().permitAll(); + http.authorizeRequests().antMatchers("/auth/login").permitAll(); // 关闭 http.headers().cacheControl(); // jwt过滤器 -// http.addFilterBefore(tokenAuthenticationFilter, UsernamePasswordAuthenticationFilter.class); + http.addFilterBefore(tokenAuthenticationFilter, UsernamePasswordAuthenticationFilter.class); // 没有登录,没有权限 => 自定义返回 http.exceptionHandling().authenticationEntryPoint(authenticationEntryPoint).accessDeniedHandler(accessDeniedHandler); // 请求认证访问 -// http.authorizeRequests().anyRequest().authenticated(); + http.authorizeRequests().anyRequest().authenticated(); // 允许跨域访问 http.cors(); @@ -80,7 +77,7 @@ @Bean @Qualifier("myUserDetailService") protected UserDetailsService userDetailsService(){ - return username -> nameService.getUserDetailsByUsername(username); + return (username)-> (UserDetails) new Object(); } diff --git a/safePlatfrom-out-web/src/main/resources/config/application-dev.yaml b/safePlatfrom-out-web/src/main/resources/config/application-dev.yaml index 63cfbe7..4279034 100644 --- a/safePlatfrom-out-web/src/main/resources/config/application-dev.yaml +++ b/safePlatfrom-out-web/src/main/resources/config/application-dev.yaml @@ -11,7 +11,7 @@ datasource: one: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://192.168.0.52:3306/safeplatform.out.dev?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai + url: jdbc:mysql://twt.sinanoaq.com:13306/zhongtai.demo?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai username: root password: Sinanoaq#415 type: com.alibaba.druid.pool.DruidDataSource @@ -43,11 +43,18 @@ minio: endPoint: 192.168.0.52 port: 9001 - accessKey: MhLac53T2KD88fwD - secretKey: dGcLziFwyKaXuMcug385cfb6iGy61U8q + accessKey: kH6eiQtNrWqGNb1r + secretKey: ff5ykVUJJn0hi5PghsitdGNSsrW0Xrju secure: false - bucketName: safeplatform-dev + bucketName: szh-stu urlPrefix: http://192.168.0.52/file +token: + header: Authorization + secret: safe666 + expiration: 7200 + refreshExpiration: 14400 + tokenHead: Bearer + loginUserHeader: uid -- Gitblit v1.9.2