提交 d930359b 编写于 作者: misaka's avatar misaka

SaaS 标准构型4 登陆模式

上级 93edd4e1
...@@ -33,10 +33,17 @@ public class IBZUAAFallback implements IBZUAAFeignClient { ...@@ -33,10 +33,17 @@ public class IBZUAAFallback implements IBZUAAFeignClient {
return null; return null;
} }
<#if sys.getSaaSMode()==4>
@Override
public AuthenticationUser loginByUsername(String system,String orgId,String username) {
return null;
}
<#else>
@Override @Override
public AuthenticationUser loginByUsername(String username) { public AuthenticationUser loginByUsername(String username) {
return null; return null;
} }
</#if>
<#if oauth2Enable> <#if oauth2Enable>
@Override @Override
......
...@@ -51,8 +51,13 @@ public interface IBZUAAFeignClient ...@@ -51,8 +51,13 @@ public interface IBZUAAFeignClient
Object getToken(@RequestBody MultiValueMap<String,String> map); Object getToken(@RequestBody MultiValueMap<String,String> map);
</#if> </#if>
<#if sys.getSaaSMode()==4>
@PostMapping(value = "/uaa/loginbyusername")
AuthenticationUser loginByUsername(@RequestHeader(name = "srfsystem") String system,@RequestHeader(name = "srforgid") String orgid ,@RequestBody String username);
<#else>
@PostMapping(value = "/uaa/loginbyusername") @PostMapping(value = "/uaa/loginbyusername")
AuthenticationUser loginByUsername(@RequestBody String username); AuthenticationUser loginByUsername(@RequestBody String username);
</#if>
@Cacheable(value="ibzuaa_publickey") @Cacheable(value="ibzuaa_publickey")
@GetMapping(value = "/uaa/publickey") @GetMapping(value = "/uaa/publickey")
......
...@@ -52,6 +52,14 @@ public class AuthenticationUser implements UserDetails ...@@ -52,6 +52,14 @@ public class AuthenticationUser implements UserDetails
*/ */
private String domain; private String domain;
/** /**
* 租户
*/
private String srfdcid;
/**
* 动态实例标识
*/
private String srfdynainstid;
/**
* 部门标识 * 部门标识
*/ */
private String mdeptid; private String mdeptid;
......
...@@ -45,7 +45,7 @@ public class AuthorizationTokenFilter extends OncePerRequestFilter { ...@@ -45,7 +45,7 @@ public class AuthorizationTokenFilter extends OncePerRequestFilter {
@Value(${r'"${ibiz.jwt.expiration:7200000}"'}) @Value(${r'"${ibiz.jwt.expiration:7200000}"'})
private Long expiration; private Long expiration;
</#if> </#if>
private final UserDetailsService userDetailsService; private final AuthenticationUserService userDetailsService;
private final AuthTokenUtil authTokenUtil; private final AuthTokenUtil authTokenUtil;
private final String tokenHeader; private final String tokenHeader;
private Set<String> excludesPattern = new HashSet<String>(); private Set<String> excludesPattern = new HashSet<String>();
...@@ -78,8 +78,15 @@ public class AuthorizationTokenFilter extends OncePerRequestFilter { ...@@ -78,8 +78,15 @@ public class AuthorizationTokenFilter extends OncePerRequestFilter {
} }
if (username != null && SecurityContextHolder.getContext().getAuthentication() == null) { if (username != null && SecurityContextHolder.getContext().getAuthentication() == null) {
<#if sys.getSaaSMode()==4>
final String requestOrgId = request.getHeader("srforgid");
if(StringUtils.isBlank(requestOrgId)){
throw new RuntimeException("无效系统标识");
}
UserDetails userDetails = this.userDetailsService.loadUserByUsername("${sys.getCodeName()}",requestOrgId,username);
<#else>
UserDetails userDetails = this.userDetailsService.loadUserByUsername(username); UserDetails userDetails = this.userDetailsService.loadUserByUsername(username);
</#if>
if (authTokenUtil.validateToken(authToken, userDetails)) { if (authTokenUtil.validateToken(authToken, userDetails)) {
UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities());
authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request)); authentication.setDetails(new WebAuthenticationDetailsSource().buildDetails(request));
......
...@@ -24,11 +24,28 @@ public interface AuthenticationUserService extends UserDetailsService { ...@@ -24,11 +24,28 @@ public interface AuthenticationUserService extends UserDetailsService {
@Override @Override
@Cacheable( value="${cachename}", key = "'getByUsername:'+#p0") @Cacheable( value="${cachename}", key = "'getByUsername:'+#p0")
AuthenticationUser loadUserByUsername(String username); default AuthenticationUser loadUserByUsername(String username){
return null ;
}
<#if sys.getSaaSMode()==4>
@Cacheable(value = "ibzuaa_users", key = "#p0+':'+#p1+':getByUsername:'+#p2")
default AuthenticationUser loadUserByUsername(String srfsystem,String srforgid, String username){
return null ;
}
</#if>
@Cacheable( value="${cachename}", key = "'getByUsername:'+#p0") @Cacheable( value="${cachename}", key = "'getByUsername:'+#p0")
AuthenticationUser loadUserByLogin(String username,String password); AuthenticationUser loadUserByLogin(String username,String password);
@CacheEvict( value="${cachename}", key = "'getByUsername:'+#p0") @CacheEvict( value="${cachename}", key = "'getByUsername:'+#p0")
void resetByUsername(String username); default void resetByUsername(String username){}
<#if sys.getSaaSMode()==4>
@Cacheable(value = "ibzuaa_users", key = "#p0+':'+#p1+':getByUsername:'+#p2")
default void resetByUsername(String srfsystem,String srforgid, String username){
}
</#if>
} }
...@@ -27,6 +27,16 @@ public class IBZUAAUserService implements AuthenticationUserService{ ...@@ -27,6 +27,16 @@ public class IBZUAAUserService implements AuthenticationUserService{
@Autowired @Autowired
private IBZUAAFeignClient uaaFeignClient; private IBZUAAFeignClient uaaFeignClient;
<#if sys.getSaaSMode()==4>
@Override
public AuthenticationUser loadUserByUsername(String system, String orgId, String username) {
AuthenticationUser user = uaaFeignClient.loginByUsername(system, orgId, username);
if (user == null) {
throw new BadRequestAlertException("登录失败", "IBZUAAUser", username);
}
return user;
}
<#else>
@Override @Override
public AuthenticationUser loadUserByUsername(String username) { public AuthenticationUser loadUserByUsername(String username) {
AuthenticationUser user = uaaFeignClient.loginByUsername(username); AuthenticationUser user = uaaFeignClient.loginByUsername(username);
...@@ -35,6 +45,7 @@ public class IBZUAAUserService implements AuthenticationUserService{ ...@@ -35,6 +45,7 @@ public class IBZUAAUserService implements AuthenticationUserService{
} }
return user; return user;
} }
</#if>
@Override @Override
public AuthenticationUser loadUserByLogin(String username, String password) { public AuthenticationUser loadUserByLogin(String username, String password) {
...@@ -57,10 +68,4 @@ public class IBZUAAUserService implements AuthenticationUserService{ ...@@ -57,10 +68,4 @@ public class IBZUAAUserService implements AuthenticationUserService{
return user; return user;
} }
@Override
public void resetByUsername(String username) {
}
} }
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册