mirror of
https://gitee.com/dromara/MaxKey.git
synced 2025-12-07 17:38:32 +08:00
OAuth2 grant_type=password fix
OAuth2 grant_type=password fix
This commit is contained in:
parent
ba681ed7ca
commit
3497aa5d26
@ -70,7 +70,7 @@ public abstract class AbstractAuthenticationProvider {
|
|||||||
@Qualifier("onlineTicketServices")
|
@Qualifier("onlineTicketServices")
|
||||||
protected OnlineTicketServices onlineTicketServices;
|
protected OnlineTicketServices onlineTicketServices;
|
||||||
|
|
||||||
static ArrayList<GrantedAuthority> grantedAdministratorsAuthoritys = new ArrayList<GrantedAuthority>();
|
public static ArrayList<GrantedAuthority> grantedAdministratorsAuthoritys = new ArrayList<GrantedAuthority>();
|
||||||
|
|
||||||
static {
|
static {
|
||||||
grantedAdministratorsAuthoritys.add(new SimpleGrantedAuthority("ROLE_ADMINISTRATORS"));
|
grantedAdministratorsAuthoritys.add(new SimpleGrantedAuthority("ROLE_ADMINISTRATORS"));
|
||||||
|
|||||||
@ -37,6 +37,14 @@ public class SigninPrincipal implements UserDetails {
|
|||||||
ArrayList<GrantedAuthority> grantedAuthorityApps;
|
ArrayList<GrantedAuthority> grantedAuthorityApps;
|
||||||
boolean authenticated;
|
boolean authenticated;
|
||||||
boolean roleAdministrators;
|
boolean roleAdministrators;
|
||||||
|
|
||||||
|
private boolean accountNonExpired;
|
||||||
|
|
||||||
|
private boolean accountNonLocked;
|
||||||
|
|
||||||
|
private boolean credentialsNonExpired;
|
||||||
|
|
||||||
|
private boolean enabled;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SigninPrincipal.
|
* SigninPrincipal.
|
||||||
@ -50,6 +58,10 @@ public class SigninPrincipal implements UserDetails {
|
|||||||
public SigninPrincipal(UserInfo userInfo) {
|
public SigninPrincipal(UserInfo userInfo) {
|
||||||
this.userInfo = userInfo;
|
this.userInfo = userInfo;
|
||||||
this.authenticated = true;
|
this.authenticated = true;
|
||||||
|
this.accountNonExpired = true;
|
||||||
|
this.accountNonLocked = true;
|
||||||
|
this.credentialsNonExpired =true;
|
||||||
|
this.enabled = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -116,22 +128,22 @@ public class SigninPrincipal implements UserDetails {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isAccountNonExpired() {
|
public boolean isAccountNonExpired() {
|
||||||
return false;
|
return this.accountNonExpired;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isAccountNonLocked() {
|
public boolean isAccountNonLocked() {
|
||||||
return false;
|
return this.accountNonLocked;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isCredentialsNonExpired() {
|
public boolean isCredentialsNonExpired() {
|
||||||
return false;
|
return this.credentialsNonExpired;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isEnabled() {
|
public boolean isEnabled() {
|
||||||
return false;
|
return this.enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ArrayList<GrantedAuthority> getGrantedAuthorityApps() {
|
public ArrayList<GrantedAuthority> getGrantedAuthorityApps() {
|
||||||
|
|||||||
@ -12,9 +12,19 @@
|
|||||||
*/
|
*/
|
||||||
package org.maxkey.authz.oauth2.provider;
|
package org.maxkey.authz.oauth2.provider;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
|
||||||
|
import org.maxkey.authn.AbstractAuthenticationProvider;
|
||||||
|
import org.maxkey.authn.SigninPrincipal;
|
||||||
|
import org.maxkey.authn.online.OnlineTicket;
|
||||||
import org.maxkey.domain.UserInfo;
|
import org.maxkey.domain.UserInfo;
|
||||||
import org.maxkey.persistence.db.LoginService;
|
import org.maxkey.persistence.db.LoginService;
|
||||||
import org.springframework.security.core.userdetails.User;
|
import org.maxkey.web.WebConstants;
|
||||||
|
import org.maxkey.web.WebContext;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
|
||||||
|
import org.springframework.security.core.GrantedAuthority;
|
||||||
import org.springframework.security.core.userdetails.UserDetails;
|
import org.springframework.security.core.userdetails.UserDetails;
|
||||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||||
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||||||
@ -24,7 +34,8 @@ import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class OAuth2UserDetailsService implements UserDetailsService {
|
public class OAuth2UserDetailsService implements UserDetailsService {
|
||||||
|
private static final Logger _logger =
|
||||||
|
LoggerFactory.getLogger(OAuth2UserDetailsService.class);
|
||||||
|
|
||||||
LoginService loginService;
|
LoginService loginService;
|
||||||
|
|
||||||
@ -42,8 +53,27 @@ public class OAuth2UserDetailsService implements UserDetailsService {
|
|||||||
throw new UsernameNotFoundException(e.getMessage(), e);
|
throw new UsernameNotFoundException(e.getMessage(), e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String onlineTickitId = WebConstants.ONLINE_TICKET_PREFIX + "-" + java.util.UUID.randomUUID().toString().toLowerCase();
|
||||||
|
|
||||||
return new User(username, userInfo.getPassword(), loginService.grantAuthority(userInfo));
|
SigninPrincipal signinPrincipal = new SigninPrincipal(userInfo);
|
||||||
|
OnlineTicket onlineTicket = new OnlineTicket(onlineTickitId);
|
||||||
|
//set OnlineTicket
|
||||||
|
signinPrincipal.setOnlineTicket(onlineTicket);
|
||||||
|
|
||||||
|
ArrayList<GrantedAuthority> grantedAuthoritys = loginService.grantAuthority(userInfo);
|
||||||
|
signinPrincipal.setAuthenticated(true);
|
||||||
|
|
||||||
|
for(GrantedAuthority administratorsAuthority : AbstractAuthenticationProvider.grantedAdministratorsAuthoritys) {
|
||||||
|
if(grantedAuthoritys.contains(administratorsAuthority)) {
|
||||||
|
signinPrincipal.setRoleAdministrators(true);
|
||||||
|
_logger.trace("ROLE ADMINISTRATORS Authentication .");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
_logger.debug("Granted Authority " + grantedAuthoritys);
|
||||||
|
|
||||||
|
signinPrincipal.setGrantedAuthorityApps(grantedAuthoritys);
|
||||||
|
|
||||||
|
return signinPrincipal;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user