提交 0b441c16 编写于 作者: S stevenBeLove

Merge branch 'master' of https://github.com/MaxKeyTop/MaxKey

...@@ -9,7 +9,10 @@ ...@@ -9,7 +9,10 @@
*(MAXKEY-200908) 应用修改时数字大于4为长度格式化问题 *(MAXKEY-200908) 应用修改时数字大于4为长度格式化问题
*(MAXKEY-200910) 注销后,点击重新登陆跳转问题 *(MAXKEY-200910) 注销后,点击重新登陆跳转问题
*(MAXKEY-200911) 增加SP登录跳转功能,支持knox的认证 *(MAXKEY-200911) 增加SP登录跳转功能,支持knox的认证
*(MAXKEY-200912) 构建脚本的优化和更新 *(MAXKEY-200912) 构建脚本的优化和更新
*(MAXKEY-200913) 权限控制 RoleAdministrators
*(MAXKEY-200914) 社交账号登录优化
*(MAXKEY-200915) 列表界面中未”选择“情况下,弹出界面错误
*(MAXKEY-200920) 依赖jar引用、更新和升级 *(MAXKEY-200920) 依赖jar引用、更新和升级
druid 1.2.1 druid 1.2.1
JustAuth 1.15.8 JustAuth 1.15.8
......
...@@ -17,6 +17,8 @@ ...@@ -17,6 +17,8 @@
package org.maxkey.authn; package org.maxkey.authn;
import java.util.ArrayList;
import org.maxkey.authn.online.OnlineTicketServices; import org.maxkey.authn.online.OnlineTicketServices;
import org.maxkey.authn.realm.AbstractAuthenticationRealm; import org.maxkey.authn.realm.AbstractAuthenticationRealm;
import org.maxkey.authn.support.rememberme.AbstractRemeberMeService; import org.maxkey.authn.support.rememberme.AbstractRemeberMeService;
...@@ -35,6 +37,8 @@ import org.springframework.security.authentication.BadCredentialsException; ...@@ -35,6 +37,8 @@ import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.security.core.AuthenticationException; import org.springframework.security.core.AuthenticationException;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
/** /**
* login Authentication abstract class. * login Authentication abstract class.
...@@ -65,6 +69,12 @@ public abstract class AbstractAuthenticationProvider { ...@@ -65,6 +69,12 @@ public abstract class AbstractAuthenticationProvider {
@Autowired @Autowired
@Qualifier("onlineTicketServices") @Qualifier("onlineTicketServices")
protected OnlineTicketServices onlineTicketServices; protected OnlineTicketServices onlineTicketServices;
static ArrayList<GrantedAuthority> grantedAdministratorsAuthoritys = new ArrayList<GrantedAuthority>();
static {
grantedAdministratorsAuthoritys.add(new SimpleGrantedAuthority("ROLE_ADMINISTRATORS"));
}
protected abstract String getProviderName(); protected abstract String getProviderName();
......
...@@ -23,7 +23,6 @@ import java.util.Collection; ...@@ -23,7 +23,6 @@ import java.util.Collection;
import org.maxkey.authn.online.OnlineTicket; import org.maxkey.authn.online.OnlineTicket;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
public class BasicAuthentication implements Authentication { public class BasicAuthentication implements Authentication {
...@@ -39,14 +38,12 @@ public class BasicAuthentication implements Authentication { ...@@ -39,14 +38,12 @@ public class BasicAuthentication implements Authentication {
OnlineTicket onlineTicket; OnlineTicket onlineTicket;
ArrayList<GrantedAuthority> grantedAuthority; ArrayList<GrantedAuthority> grantedAuthority;
boolean authenticated; boolean authenticated;
boolean roleAdministrators;
/** /**
* BasicAuthentication. * BasicAuthentication.
*/ */
public BasicAuthentication() { public BasicAuthentication() {
grantedAuthority = new ArrayList<GrantedAuthority>();
grantedAuthority.add(new SimpleGrantedAuthority("ROLE_USER"));
grantedAuthority.add(new SimpleGrantedAuthority("ORDINARY_USER"));
} }
/** /**
...@@ -56,9 +53,6 @@ public class BasicAuthentication implements Authentication { ...@@ -56,9 +53,6 @@ public class BasicAuthentication implements Authentication {
this.username = username; this.username = username;
this.password = password; this.password = password;
this.authType = authType; this.authType = authType;
grantedAuthority = new ArrayList<GrantedAuthority>();
grantedAuthority.add(new SimpleGrantedAuthority("ROLE_USER"));
grantedAuthority.add(new SimpleGrantedAuthority("ORDINARY_USER"));
} }
@Override @Override
public String getName() { public String getName() {
...@@ -177,6 +171,14 @@ public class BasicAuthentication implements Authentication { ...@@ -177,6 +171,14 @@ public class BasicAuthentication implements Authentication {
this.onlineTicket = onlineTicket; this.onlineTicket = onlineTicket;
} }
public boolean isRoleAdministrators() {
return roleAdministrators;
}
public void setRoleAdministrators(boolean roleAdministrators) {
this.roleAdministrators = roleAdministrators;
}
@Override @Override
public String toString() { public String toString() {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
......
...@@ -17,6 +17,8 @@ ...@@ -17,6 +17,8 @@
package org.maxkey.authn; package org.maxkey.authn;
import java.util.ArrayList;
import org.maxkey.authn.online.OnlineTicket; import org.maxkey.authn.online.OnlineTicket;
import org.maxkey.domain.UserInfo; import org.maxkey.domain.UserInfo;
import org.maxkey.web.WebConstants; import org.maxkey.web.WebConstants;
...@@ -26,6 +28,8 @@ import org.slf4j.LoggerFactory; ...@@ -26,6 +28,8 @@ import org.slf4j.LoggerFactory;
import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.authority.SimpleGrantedAuthority;
import org.springframework.security.web.authentication.WebAuthenticationDetails; import org.springframework.security.web.authentication.WebAuthenticationDetails;
import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes;
...@@ -157,13 +161,25 @@ public class RealmAuthenticationProvider extends AbstractAuthenticationProvider ...@@ -157,13 +161,25 @@ public class RealmAuthenticationProvider extends AbstractAuthenticationProvider
OnlineTicket onlineTicket = new OnlineTicket(onlineTickitId,authentication); OnlineTicket onlineTicket = new OnlineTicket(onlineTickitId,authentication);
this.onlineTicketServices.store(onlineTickitId, onlineTicket); this.onlineTicketServices.store(onlineTickitId, onlineTicket);
authentication.setOnlineTicket(onlineTicket); authentication.setOnlineTicket(onlineTicket);
ArrayList<GrantedAuthority> grantedAuthoritys = authenticationRealm.grantAuthority(userInfo);
//set default roles
grantedAuthoritys.add(new SimpleGrantedAuthority("ROLE_USER"));
grantedAuthoritys.add(new SimpleGrantedAuthority("ROLE_ORDINARY_USER"));
authentication.setAuthenticated(true); authentication.setAuthenticated(true);
for(GrantedAuthority administratorsAuthority : grantedAdministratorsAuthoritys) {
if(grantedAuthoritys.contains(administratorsAuthority)) {
authentication.setRoleAdministrators(true);
_logger.trace("ROLE ADMINISTRATORS Authentication .");
}
}
UsernamePasswordAuthenticationToken authenticationToken = UsernamePasswordAuthenticationToken authenticationToken =
new UsernamePasswordAuthenticationToken( new UsernamePasswordAuthenticationToken(
authentication, authentication,
"PASSWORD", "PASSWORD",
authenticationRealm.grantAuthority(userInfo) grantedAuthoritys
); );
authenticationToken.setDetails( authenticationToken.setDetails(
......
...@@ -23,13 +23,13 @@ import javax.servlet.RequestDispatcher; ...@@ -23,13 +23,13 @@ import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import org.maxkey.authn.BasicAuthentication;
import org.maxkey.configuration.ApplicationConfig; import org.maxkey.configuration.ApplicationConfig;
import org.maxkey.web.WebContext; import org.maxkey.web.WebContext;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
/** /**
...@@ -48,6 +48,7 @@ public class PermissionAdapter extends HandlerInterceptorAdapter { ...@@ -48,6 +48,7 @@ public class PermissionAdapter extends HandlerInterceptorAdapter {
private ApplicationConfig applicationConfig; private ApplicationConfig applicationConfig;
static ConcurrentHashMap<String ,String >navigationsMap=null; static ConcurrentHashMap<String ,String >navigationsMap=null;
/* /*
* 请求前处理 * 请求前处理
* (non-Javadoc) * (non-Javadoc)
...@@ -58,13 +59,21 @@ public class PermissionAdapter extends HandlerInterceptorAdapter { ...@@ -58,13 +59,21 @@ public class PermissionAdapter extends HandlerInterceptorAdapter {
_logger.trace("PermissionAdapter preHandle"); _logger.trace("PermissionAdapter preHandle");
//判断用户是否登录 //判断用户是否登录
if(WebContext.getAuthentication()==null||WebContext.getAuthentication().getAuthorities()==null){//判断用户和角色,判断用户是否登录用户 if(WebContext.getAuthentication()==null
_logger.trace("No Authentication ... forward to /login"); ||WebContext.getAuthentication().getAuthorities()==null){//判断用户和角色,判断用户是否登录用户
RequestDispatcher dispatcher = request.getRequestDispatcher("/login"); _logger.trace("No Authentication ... forward to /login");
dispatcher.forward(request, response); RequestDispatcher dispatcher = request.getRequestDispatcher("/login");
return false; dispatcher.forward(request, response);
} return false;
}
//非管理员用户直接注销
if (!((BasicAuthentication) WebContext.getAuthentication().getPrincipal()).isRoleAdministrators()) {
_logger.debug("Not ADMINISTRATORS Authentication .");
RequestDispatcher dispatcher = request.getRequestDispatcher("/logout");
dispatcher.forward(request, response);
return false;
}
boolean hasAccess=true; boolean hasAccess=true;
......
...@@ -11,6 +11,10 @@ ...@@ -11,6 +11,10 @@
$(function () { $(function () {
$("#addGroupAppsBtn").on("click",function(){ $("#addGroupAppsBtn").on("click",function(){
if($("#groupId").val()==""){
$.alert({content:$.platform.messages.select.alertText});
return;
}
var settings={ var settings={
url : "<@base/>/groupPrivileges/addGroupAppsList/"+$("#groupId").val(),//window url url : "<@base/>/groupPrivileges/addGroupAppsList/"+$("#groupId").val(),//window url
title : "New",//title title : "New",//title
......
...@@ -11,7 +11,11 @@ ...@@ -11,7 +11,11 @@
$(function () { $(function () {
$("#insertGroupUserBtn").on("click",function(){ $("#insertGroupUserBtn").on("click",function(){
if($("#groupId").val()==""){
$.alert({content:$.platform.messages.select.alertText});
return;
}
var settings={ var settings={
url : "<@base/>/groupMember/addGroupAppsList/"+$("#groupId").val(),//window url url : "<@base/>/groupMember/addGroupAppsList/"+$("#groupId").val(),//window url
title : "New",//title title : "New",//title
......
...@@ -15,6 +15,14 @@ $(function () { ...@@ -15,6 +15,14 @@ $(function () {
$("#appId").val($.cookie("select_app_id")); $("#appId").val($.cookie("select_app_id"));
$("#parentId").val($.cookie("select_res_id")); $("#parentId").val($.cookie("select_res_id"));
$("#parentName").val($.cookie("select_res_name")); $("#parentName").val($.cookie("select_res_name"));
if($("#parentId").val()==""){
$.alert({
content:$.platform.messages.select.alertText,
callback:function (){$.closeWindow();}
});
}
}); });
</script> </script>
</head> </head>
......
...@@ -12,6 +12,10 @@ ...@@ -12,6 +12,10 @@
$(function () { $(function () {
$("#insertGroupUserBtn").on("click",function(){ $("#insertGroupUserBtn").on("click",function(){
if($("#roleId").val()==""){
$.alert({content:$.platform.messages.select.alertText});
return;
}
var settings={ var settings={
url : "<@base/>/rolemembers/addRoleAppsList/"+$("#roleId").val(),//window url url : "<@base/>/rolemembers/addRoleAppsList/"+$("#roleId").val(),//window url
title : "New",//title title : "New",//title
......
...@@ -51,7 +51,8 @@ ...@@ -51,7 +51,8 @@
<tr> <tr>
<td style="width:15%;"><@locale code="userinfo.username" /></td> <td style="width:15%;"><@locale code="userinfo.username" /></td>
<td style="width:35%;"> <td style="width:35%;">
<input type="hidden" id="id" name="id" value=""/> <input type="hidden" id="id" name="id" value=""/>
<input type="hidden" id="status" name="status" value="1"/>
<input class="form-control" type="text" required="" id="username" name="username" title="" value=""/> <input class="form-control" type="text" required="" id="username" name="username" title="" value=""/>
</td> </td>
<td style="width:15%;"><@locale code="login.text.password" /></td> <td style="width:15%;"><@locale code="login.text.password" /></td>
......
...@@ -136,9 +136,13 @@ $(function () { ...@@ -136,9 +136,13 @@ $(function () {
} }
);//end tree );//end tree
$("#changepwdBtn").on("click",function(){ $("#changepwdBtn").on("click",function(){
$("#changepwdBtnHidden").attr("wurl","<@base/>/userinfo/forwardChangePassword/"+$.dataGridSelRowsData("#datagrid")[0].id); if($.dataGridSelRowsData("#datagrid")[0]==null){
$("#changepwdBtnHidden").click(); $.alert({content:$.platform.messages.select.alertText});
return;
}
$("#changepwdBtnHidden").attr("wurl","<@base/>/userinfo/forwardChangePassword/"+$.dataGridSelRowsData("#datagrid")[0].id);
$("#changepwdBtnHidden").click();
}); });
}); });
......
...@@ -40,12 +40,13 @@ ...@@ -40,12 +40,13 @@
<div style="float:right;" >&nbsp;&nbsp;<@locale code="login.password.changepassword"/>&nbsp;&nbsp;</div> <div style="float:right;" >&nbsp;&nbsp;<@locale code="login.password.changepassword"/>&nbsp;&nbsp;</div>
</a> </a>
</td> </td>
<#if Session["current_authentication"].principal.roleAdministrators==true >
<td id="manage" nowrap> <td id="manage" nowrap>
<a target="_blank" href="<@base/>/authz/maxkey_mgt"> <a target="_blank" href="<@base/>/authz/maxkey_mgt">
<div style="float:right;" >&nbsp;&nbsp;<@locale code="global.text.manage"/>&nbsp;&nbsp;</div> <div style="float:right;" >&nbsp;&nbsp;<@locale code="global.text.manage"/>&nbsp;&nbsp;</div>
</a> </a>
</td> </td>
</#if>
<td id="logout" class="ui-widget-header" > <td id="logout" class="ui-widget-header" >
<a href="<@base/>/logout?reLoginUrl=login"> <a href="<@base/>/logout?reLoginUrl=login">
<div style="float:right;" >&nbsp;&nbsp;<@locale code="global.text.logout"/>&nbsp;&nbsp;</div> <div style="float:right;" >&nbsp;&nbsp;<@locale code="global.text.logout"/>&nbsp;&nbsp;</div>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册