From 578e49d67183d8d12a6af7e8244a9d152cb366d4 Mon Sep 17 00:00:00 2001
From: ZhuDongming <773644075@qq.com>
Date: Wed, 09 Oct 2019 14:02:21 +0800
Subject: [PATCH] 大屏后台管理代码update
---
src/main/java/com/moral/security/auth/login/LoginAuthenticationProvider.java | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/moral/security/auth/login/LoginAuthenticationProvider.java b/src/main/java/com/moral/security/auth/login/LoginAuthenticationProvider.java
index 307d880..4047ded 100644
--- a/src/main/java/com/moral/security/auth/login/LoginAuthenticationProvider.java
+++ b/src/main/java/com/moral/security/auth/login/LoginAuthenticationProvider.java
@@ -1,6 +1,7 @@
package com.moral.security.auth.login;
import com.moral.entity.Account;
+import com.moral.security.exceptions.AccountExpiredBadCredentialsException;
import com.moral.security.model.UserContext;
import com.moral.service.AccountService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -17,7 +18,9 @@
import org.springframework.stereotype.Component;
import org.springframework.util.Assert;
+import java.util.Date;
import java.util.List;
+import java.util.Optional;
import java.util.stream.Collectors;
/**
@@ -51,6 +54,14 @@
String password = (String) authentication.getCredentials();
LoginMode mode = (LoginMode) authentication.getDetails();
Account account = accountService.queryAccountByName(accountName).orElseThrow(() -> new UsernameNotFoundException("User not found: " + accountName));
+ Date expireTime = Optional.ofNullable(account.getExpireTime())
+ .orElseThrow(
+ ()-> new AccountExpiredBadCredentialsException("Authentication Failed. Account has expired.")
+ );
+ Date nowTime = new Date();
+ if(expireTime.getTime()<nowTime.getTime()){
+ throw new AccountExpiredBadCredentialsException("Authentication Failed. Account has expired.");
+ }
if (!encoder.matches(password, account.getPassword())) {
throw new BadCredentialsException("Authentication Failed. Username or Password not valid.");
}
@@ -59,7 +70,7 @@
throw new InsufficientAuthenticationException("User has no roles assigned");
}
List<GrantedAuthority> authorities = account.getRoles().stream()
- .map(authority -> new SimpleGrantedAuthority(authority.getName()))
+ .map(authority -> new SimpleGrantedAuthority(authority.getRoleName()))
.collect(Collectors.toList());
UserContext userContext = UserContext.create(account.getAccountName(),mode,account.getOrganizationId(),authorities);
--
Gitblit v1.8.0