* https://www.renren.io - * + *
* 版权所有,侵权必究!
*/
package com.elink.esua.epdc.controller;
+import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.exception.ErrorCode;
-import com.elink.esua.epdc.commons.tools.security.user.CpUserDetail;
import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.commons.tools.validator.AssertUtils;
@@ -40,7 +40,7 @@ import java.io.IOException;
* @since 1.0.0
*/
@RestController
-@Api(tags="授权管理")
+@Api(tags = "授权管理")
public class AuthController {
@Autowired
private AuthService authService;
@@ -50,9 +50,9 @@ public class AuthController {
private CaptchaService captchaService;
@GetMapping("captcha")
- @ApiOperation(value = "验证码", produces="application/octet-stream")
- @ApiImplicitParam(paramType = "query", dataType="string", name = "uuid", required = true)
- public void captcha(HttpServletResponse response, String uuid)throws IOException {
+ @ApiOperation(value = "验证码", produces = "application/octet-stream")
+ @ApiImplicitParam(paramType = "query", dataType = "string", name = "uuid", required = true)
+ public void captcha(HttpServletResponse response, String uuid) throws IOException {
//uuid不能为空
AssertUtils.isBlank(uuid, ErrorCode.IDENTIFIER_NOT_NULL);
@@ -68,13 +68,13 @@ public class AuthController {
@PostMapping(value = "login")
@ApiOperation(value = "登录")
- public Result
* https://www.renren.io
- *
+ *
* 版权所有,侵权必究!
*/
package com.elink.esua.epdc.service;
-import com.elink.esua.epdc.commons.tools.security.user.CpUserDetail;
+import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.dto.AuthorizationDTO;
import com.elink.esua.epdc.dto.LoginDTO;
@@ -30,5 +30,5 @@ public interface AuthService {
*/
void logout(Long userId);
- CpUserDetail getLoginUserInfo(String token);
+ TokenDto getLoginUserInfo(String token);
}
diff --git a/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/service/impl/AuthServiceImpl.java b/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/service/impl/AuthServiceImpl.java
index cd792001d..fa2f63e88 100644
--- a/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/service/impl/AuthServiceImpl.java
+++ b/esua-epdc/epdc-auth/src/main/java/com/elink/esua/epdc/service/impl/AuthServiceImpl.java
@@ -1,16 +1,15 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
- *
+ *
* https://www.renren.io
- *
+ *
* 版权所有,侵权必究!
*/
package com.elink.esua.epdc.service.impl;
-import com.elink.esua.epdc.commons.tools.redis.CpUserDetailRedis;
-import com.elink.esua.epdc.commons.tools.security.user.CpUserDetail;
-import com.elink.esua.epdc.enums.UserStatusEnum;
+import com.elink.esua.epdc.common.token.dto.TokenDto;
+import com.elink.esua.epdc.common.token.util.CpUserDetailRedis;
import com.elink.esua.epdc.commons.tools.exception.ErrorCode;
import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.log.SysLogLogin;
@@ -27,6 +26,7 @@ import com.elink.esua.epdc.commons.tools.utils.IpUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.AuthorizationDTO;
import com.elink.esua.epdc.dto.LoginDTO;
+import com.elink.esua.epdc.enums.UserStatusEnum;
import com.elink.esua.epdc.feign.UserFeignClient;
import com.elink.esua.epdc.jwt.JwtProperties;
import com.elink.esua.epdc.jwt.JwtUtils;
@@ -78,7 +78,7 @@ public class AuthServiceImpl implements AuthService {
log.setIp(IpUtils.getIpAddr(request));
//账号不存在
- if(user == null){
+ if (user == null) {
log.setStatus(LoginStatusEnum.FAIL.value());
log.setCreatorName(login.getUsername());
logProducer.saveLog(log);
@@ -87,7 +87,7 @@ public class AuthServiceImpl implements AuthService {
}
//密码错误
- if(!PasswordUtils.matches(login.getPassword(), user.getPassword())){
+ if (!PasswordUtils.matches(login.getPassword(), user.getPassword())) {
log.setStatus(LoginStatusEnum.FAIL.value());
log.setCreator(user.getId());
log.setCreatorName(user.getUsername());
@@ -97,7 +97,7 @@ public class AuthServiceImpl implements AuthService {
}
//账号停用
- if(user.getStatus() == UserStatusEnum.DISABLE.value()){
+ if (user.getStatus() == UserStatusEnum.DISABLE.value()) {
log.setStatus(LoginStatusEnum.LOCK.value());
log.setCreator(user.getId());
log.setCreatorName(user.getUsername());
@@ -149,7 +149,7 @@ public class AuthServiceImpl implements AuthService {
}
@Override
- public CpUserDetail getLoginUserInfo(String token) {
+ public TokenDto getLoginUserInfo(String token) {
//是否过期
Claims claims = jwtUtils.getClaimByToken(token);
if (claims == null || jwtUtils.isTokenExpired(claims.getExpiration())) {
@@ -160,7 +160,7 @@ public class AuthServiceImpl implements AuthService {
String userId = claims.getSubject();
//查询Redis,如果没数据,则保持用户信息到Redis
- CpUserDetail cpUserDetail = cpUserDetailRedis.get(userId);
+ TokenDto cpUserDetail = cpUserDetailRedis.get(userId);
if (cpUserDetail != null) {
//过期时间
long expire = (claims.getExpiration().getTime() - System.currentTimeMillis()) / 1000;
diff --git a/esua-epdc/epdc-commons/epdc-common-clienttoken/pom.xml b/esua-epdc/epdc-commons/epdc-common-clienttoken/pom.xml
index e6c04ec31..dd4f4e01c 100644
--- a/esua-epdc/epdc-commons/epdc-common-clienttoken/pom.xml
+++ b/esua-epdc/epdc-commons/epdc-common-clienttoken/pom.xml
@@ -65,6 +65,12 @@
* https://www.renren.io - * + *
* 版权所有,侵权必究!
*/
package com.elink.esua.epdc.feign.fallback;
-import com.elink.esua.epdc.commons.tools.security.user.CpUserDetail;
+import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.feign.ResourceFeignClient;
@@ -29,7 +29,7 @@ public class ResourceFeignClientFallback implements ResourceFeignClient {
}
@Override
- public Result
- * https://www.renren.io
- *
- * 版权所有,侵权必究!
- */
-
-package com.elink.esua.epdc.controller;
-
-import com.elink.esua.epdc.annotation.Login;
-import com.elink.esua.epdc.annotation.LoginUser;
-import com.elink.esua.epdc.commons.tools.utils.Result;
-import com.elink.esua.epdc.entity.UserEntity;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestAttribute;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * 测试接口
- *
- * @author Mark sunlightcs@gmail.com
- */
-@RestController
-@RequestMapping("test")
-public class ApiTestController {
-
- /**
- * 获取用户信息
- *
- * @param user
- * @return
- */
- @Login
- @GetMapping("userInfo")
- public Result
+ * https://www.renren.io
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.elink.esua.epdc.jwt;
+
+import io.jsonwebtoken.Claims;
+import io.jsonwebtoken.Jwts;
+import io.jsonwebtoken.SignatureAlgorithm;
+import org.joda.time.DateTime;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+/**
+ * Jwt工具类
+ *
+ * @author Mark sunlightcs@gmail.com
+ * @since 1.0.0
+ */
+@Component
+public class JwtTokenUtils {
+ private static final Logger logger = LoggerFactory.getLogger(JwtTokenUtils.class);
+
+ @Autowired
+ private JwtTokenProperties jwtProperties;
+
+ /**
+ * 生成jwt token
+ */
+ public String generateToken(String userId) {
+ return Jwts.builder()
+ .setHeaderParam("typ", "JWT")
+ .setSubject(userId)
+ .setIssuedAt(new Date())
+ .setExpiration(DateTime.now().plusSeconds(jwtProperties.getExpire()).toDate())
+ .signWith(SignatureAlgorithm.HS512, jwtProperties.getSecret())
+ .compact();
+ }
+
+ public Claims getClaimByToken(String token) {
+ try {
+ return Jwts.parser()
+ .setSigningKey(jwtProperties.getSecret())
+ .parseClaimsJws(token)
+ .getBody();
+ } catch (Exception e) {
+ logger.debug("validate is token error, token = " + token, e);
+ return null;
+ }
+ }
+
+ /**
+ * token是否过期
+ *
+ * @return true:过期
+ */
+ public boolean isTokenExpired(Date expiration) {
+ return expiration.before(new Date());
+ }
+}
diff --git a/esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/common/token/resolver/LoginUserHandlerMethodArgumentResolver.java b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/resolver/LoginUserHandlerMethodArgumentResolver.java
similarity index 89%
rename from esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/common/token/resolver/LoginUserHandlerMethodArgumentResolver.java
rename to esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/resolver/LoginUserHandlerMethodArgumentResolver.java
index ec638592a..6e999b148 100644
--- a/esua-epdc/epdc-commons/epdc-common-clienttoken/src/main/java/com/elink/esua/common/token/resolver/LoginUserHandlerMethodArgumentResolver.java
+++ b/esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/resolver/LoginUserHandlerMethodArgumentResolver.java
@@ -6,11 +6,12 @@
* 版权所有,侵权必究!
*/
-package com.elink.esua.common.token.resolver;
+package com.elink.esua.epdc.resolver;
+import com.elink.esua.epdc.common.token.dto.TokenDto;
+import com.elink.esua.epdc.common.token.util.CpUserDetailRedis;
import com.elink.esua.epdc.commons.tools.annotation.LoginUser;
import com.elink.esua.epdc.commons.tools.constant.Constant;
-import com.elink.esua.epdc.commons.tools.redis.CpUserDetailRedis;
import com.elink.esua.epdc.commons.tools.security.user.CpUserDetail;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -46,7 +47,7 @@ public class LoginUserHandlerMethodArgumentResolver implements HandlerMethodArgu
if (StringUtils.isEmpty(userId)) {
return null;
}
- CpUserDetail user = cpUserDetailRedis.get(userId);
+ TokenDto user = cpUserDetailRedis.get(userId);
return user;
}
}
diff --git a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/EpdcEventsDetailDTO.java b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/EpdcEventsDetailDTO.java
index 9db5f4821..bb9dd80be 100644
--- a/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/EpdcEventsDetailDTO.java
+++ b/esua-epdc/epdc-module/epdc-events/epdc-events-client/src/main/java/com/elink/esua/epdc/dto/events/EpdcEventsDetailDTO.java
@@ -33,5 +33,9 @@ public class EpdcEventsDetailDTO implements Serializable {
/**
* 图片
*/
- private List