注释修改

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

View File

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

View File

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