注释修改

pull/383/head
Nick 2020-06-02 21:16:37 +08:00
parent a92198a836
commit 13215f84f4
4 changed files with 39 additions and 3 deletions

View File

@ -49,7 +49,7 @@ public class AuthController {
private Long expiration; private Long expiration;
@Value("${rsa.private_key}") @Value("${rsa.private_key}")
private String privateKey; private String privateKey;
@Value("${single.login:false}") @Value("${single.login:true}")
private Boolean singleLogin; private Boolean singleLogin;
/** /**
* final,,AutoWired,Spring4.3; * final,,AutoWired,Spring4.3;
@ -98,12 +98,16 @@ public class AuthController {
* Authentication;,principal,credentials, * Authentication;,principal,credentials,
* authenticationTokenSpringSecurityauthenticate(authenticationToken) * authenticationTokenSpringSecurityauthenticate(authenticationToken)
* boolean isAuthenticated()Authentication * boolean isAuthenticated()Authentication
*
* UsernamePasswordAuthenticationTokenAbstractAuthenticationToken,
* AbstractAuthenticationTokenAuthenticationCredentialsContainer
* CredentialsContainerCredentials使
*/ */
UsernamePasswordAuthenticationToken authenticationToken = UsernamePasswordAuthenticationToken authenticationToken =
new UsernamePasswordAuthenticationToken(authUser.getUsername(), password); new UsernamePasswordAuthenticationToken(authUser.getUsername(), password);
/** /**
* token * token
* * ProviderManager,Credentials
*/ */
Authentication authentication = authenticationManagerBuilder.getObject().authenticate(authenticationToken); Authentication authentication = authenticationManagerBuilder.getObject().authenticate(authenticationToken);
SecurityContextHolder.getContext().setAuthentication(authentication); SecurityContextHolder.getContext().setAuthentication(authentication);
@ -117,6 +121,7 @@ public class AuthController {
put("token", properties.getTokenStartWith() + token); put("token", properties.getTokenStartWith() + token);
put("user", jwtUser); put("user", jwtUser);
}}; }};
//不同的浏览器中总共只允许此账号登陆一次
if(singleLogin){ if(singleLogin){
//踢掉之前已经登录的token //踢掉之前已经登录的token
onlineUserService.checkLoginOnUser(authUser.getUsername(),token); onlineUserService.checkLoginOnUser(authUser.getUsername(),token);

View File

@ -54,7 +54,7 @@ public class TokenFilter extends GenericFilterBean {
} }
/** /**
* * redis(redis.getKey()null),requesttokentoken
*/ */
if (onlineUser != null && StringUtils.hasText(token) && tokenProvider.validateToken(token)) { if (onlineUser != null && StringUtils.hasText(token) && tokenProvider.validateToken(token)) {
Authentication authentication = tokenProvider.getAuthentication(token); Authentication authentication = tokenProvider.getAuthentication(token);

View File

@ -56,6 +56,20 @@ public class TokenProvider implements InitializingBean {
Date validity = new Date(now + properties.getTokenValidityInSeconds()); Date validity = new Date(now + properties.getTokenValidityInSeconds());
/** /**
* 使HmacSHA512 * 使HmacSHA512
*
* compact()JwtBuilderDefaultJwtBuilder
* signWith()使JWT
* setSubject()
*
* JWT
*
* header(-----base64Json,使setHeader(),
*
* Payload(---base64Json,claim(),JWT
*
* Signature()---使HeaderPlayload
*
* .
*/ */
return Jwts.builder() return Jwts.builder()
.setSubject(authentication.getName()) .setSubject(authentication.getName())

View File

@ -41,6 +41,9 @@ public class OnlineUserService {
String address = StringUtils.getCityInfo(ip); String address = StringUtils.getCityInfo(ip);
OnlineUser onlineUser = null; OnlineUser onlineUser = null;
try { try {
/**
* token
*/
onlineUser = new OnlineUser(jwtUser.getUsername(), jwtUser.getNickName(), job, browser , ip, address, EncryptUtils.desEncrypt(token), new Date()); onlineUser = new OnlineUser(jwtUser.getUsername(), jwtUser.getNickName(), job, browser , ip, address, EncryptUtils.desEncrypt(token), new Date());
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
@ -68,11 +71,22 @@ public class OnlineUserService {
* @return / * @return /
*/ */
public List<OnlineUser> getAll(String filter){ public List<OnlineUser> getAll(String filter){
/**
* rediskeyvalueOnlineUser
*/
List<String> keys = redisUtils.scan(properties.getOnlineKey() + "*"); List<String> keys = redisUtils.scan(properties.getOnlineKey() + "*");
Collections.reverse(keys); Collections.reverse(keys);
List<OnlineUser> onlineUsers = new ArrayList<>(); List<OnlineUser> onlineUsers = new ArrayList<>();
for (String key : keys) { for (String key : keys) {
OnlineUser onlineUser = (OnlineUser) redisUtils.get(key); OnlineUser onlineUser = (OnlineUser) redisUtils.get(key);
/* admin线
if(StringUtils.isNotBlank(filter)){
if(onlineUser.toString().contains("admin")) {
onlineUsers.add(onlineUser);
} else if(onlineUser.toString().contains(filter)){
onlineUsers.add(onlineUser);
}
}*/
if(StringUtils.isNotBlank(filter)){ if(StringUtils.isNotBlank(filter)){
if(onlineUser.toString().contains(filter)){ if(onlineUser.toString().contains(filter)){
onlineUsers.add(onlineUser); onlineUsers.add(onlineUser);
@ -139,6 +153,9 @@ public class OnlineUserService {
* @param userName * @param userName
*/ */
public void checkLoginOnUser(String userName, String igoreToken){ public void checkLoginOnUser(String userName, String igoreToken){
/**
*
*/
List<OnlineUser> onlineUsers = getAll(userName); List<OnlineUser> onlineUsers = getAll(userName);
if(onlineUsers ==null || onlineUsers.isEmpty()){ if(onlineUsers ==null || onlineUsers.isEmpty()){
return; return;