提交 a2740e15 编写于 作者: M MaxKey

authn

上级 476ebfdc
......@@ -118,7 +118,7 @@ public abstract class AbstractAuthenticationProvider {
changeSession(authentication);
authenticationRealm.insertLoginHistory( WebContext.getUserInfo(),
authenticationRealm.insertLoginHistory(((SigninPrincipal) authentication.getPrincipal()).getUserInfo(),
ConstsLoginType.LOCAL,
"",
"xe00000004",
......@@ -141,10 +141,6 @@ public abstract class AbstractAuthenticationProvider {
for(String attributeName : WebContext.sessionAttributeNameList) {
WebContext.setAttribute(attributeName, sessionAttributeMap.get(attributeName));
}
_logger.debug("Login Success Session {} Mapping to user Session {}.",
WebContext.getSession().getId(),
WebContext.getAttribute(WebConstants.CURRENT_USER_SESSION_ID));
}
......
......@@ -189,6 +189,7 @@ public class RealmAuthenticationProvider extends AbstractAuthenticationProvider
this.applicationConfig.getBaseDomainName(),
WebConstants.ONLINE_TICKET_NAME,
onlineTickitId);
userInfo.setOnlineTicket(currentUserSessionId);
SigninPrincipal signinPrincipal = new SigninPrincipal(userInfo);
//set OnlineTicket
......@@ -218,20 +219,14 @@ public class RealmAuthenticationProvider extends AbstractAuthenticationProvider
onlineTicket.setAuthentication(authenticationToken);
//store onlineTicket
this.onlineTicketServices.store(onlineTickitId, onlineTicket);
/*
* put userInfo to current session context
* put Authentication to current session context
*/
WebContext.setUserInfo(userInfo);
WebContext.setAuthentication(authenticationToken);
WebContext.setAttribute(WebConstants.CURRENT_USER_SESSION_ID, currentUserSessionId);
if(!WebContext.getInst(WebContext.getRequest()).equalsIgnoreCase(userInfo.getInstId())){
//TODO :
}
return authenticationToken;
}
......
......@@ -22,6 +22,7 @@ import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletResponse;
import org.maxkey.authn.SigninPrincipal;
import org.maxkey.authn.realm.ldap.LdapAuthenticationRealmService;
import org.maxkey.authn.support.rememberme.AbstractRemeberMeService;
import org.maxkey.entity.Groups;
......@@ -38,6 +39,7 @@ import org.maxkey.web.ipregion.IpRegionFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
/**
......@@ -135,9 +137,10 @@ public abstract class AbstractAuthenticationRealm {
HistoryLogin historyLogin = new HistoryLogin();
historyLogin.setSessionId(WebContext.genId());
historyLogin.setSessionStatus(7);
if(WebContext.getAttribute(WebConstants.CURRENT_USER_SESSION_ID) != null) {
historyLogin.setSessionStatus(1);
historyLogin.setSessionId(WebContext.getAttribute(WebConstants.CURRENT_USER_SESSION_ID).toString());
Authentication authentication = (Authentication ) WebContext.getAttribute(WebConstants.AUTHENTICATION);
if(authentication.getPrincipal() instanceof SigninPrincipal) {
historyLogin.setSessionStatus(1);
historyLogin.setSessionId(userInfo.getOnlineTicket());
}
_logger.debug("user session id is {} . ",historyLogin.getSessionId());
......@@ -174,24 +177,23 @@ public abstract class AbstractAuthenticationRealm {
* @return
*/
public boolean logout(HttpServletResponse response) {
if (isAuthenticated()) {
Object sessionIdAttribute = WebContext.getAttribute(WebConstants.CURRENT_USER_SESSION_ID);
UserInfo userInfo = WebContext.getUserInfo();
Authentication authentication = (Authentication ) WebContext.getAttribute(WebConstants.AUTHENTICATION);
if(authentication != null && authentication.getPrincipal() instanceof SigninPrincipal) {
SigninPrincipal signinPrincipal = ((SigninPrincipal) authentication.getPrincipal());
UserInfo userInfo = signinPrincipal.getUserInfo();
userInfo.setLastLogoffTime(DateUtils.formatDateTime(new Date()));
if (sessionIdAttribute != null) {
remeberMeService.removeRemeberMe(response);
remeberMeService.removeRemeberMe(response);
loginHistoryRepository.logoff(userInfo.getLastLogoffTime(), signinPrincipal.getOnlineTicket().getTicketId());
loginHistoryRepository.logoff(userInfo.getLastLogoffTime(), sessionIdAttribute.toString());
}
loginRepository.updateLastLogoff(userInfo);
_logger.debug("Session " + WebContext.getAttribute(WebConstants.CURRENT_USER_SESSION_ID) + ", user "
_logger.debug("Session " + signinPrincipal.getOnlineTicket().getTicketId() + ", user "
+ userInfo.getUsername() + " Logout, datetime " + userInfo.getLastLogoffTime() + " .");
//remove login user session id
WebContext.removeAttribute(WebConstants.CURRENT_USER_SESSION_ID);
}
}
return true;
}
......
package org.maxkey.authn;
package org.maxkey.authn.web;
import org.maxkey.authn.SigninPrincipal;
import org.maxkey.authn.annotation.CurrentUser;
import org.maxkey.entity.UserInfo;
import org.maxkey.web.WebConstants;
import org.springframework.core.MethodParameter;
......
......@@ -13,7 +13,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.maxkey.web;
package org.maxkey.authn.web;
import java.util.Date;
......@@ -23,12 +23,16 @@ import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
import org.apache.mybatis.jpa.util.WebContext;
import org.maxkey.authn.SigninPrincipal;
import org.maxkey.entity.UserInfo;
import org.maxkey.persistence.repository.LoginHistoryRepository;
import org.maxkey.persistence.repository.LoginRepository;
import org.maxkey.util.DateUtils;
import org.maxkey.web.WebConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
@WebListener
public class SessionListenerAdapter implements HttpSessionListener {
......@@ -57,6 +61,8 @@ public class SessionListenerAdapter implements HttpSessionListener {
loginHistoryRepository = (LoginHistoryRepository)WebContext.getBean("loginHistoryRepository");
_logger.debug("SessionListenerAdapter function inited . ");
}
_logger.info("SecurityContextHolder StrategyName " + SessionSecurityContextHolderStrategy.class.getCanonicalName());
SecurityContextHolder.setStrategyName(SessionSecurityContextHolderStrategy.class.getCanonicalName());
}
/**
* session Created
......@@ -72,21 +78,22 @@ public class SessionListenerAdapter implements HttpSessionListener {
@Override
public void sessionDestroyed(HttpSessionEvent sessionEvent) {
HttpSession session = sessionEvent.getSession();
Object sessionIdAttribute = session.getAttribute(WebConstants.CURRENT_USER_SESSION_ID);
_logger.trace("session Id : " + session.getId());
if(sessionIdAttribute != null) {
init();
UserInfo userInfo = (UserInfo)session.getAttribute(WebConstants.CURRENT_USER);
userInfo.setLastLogoffTime(DateUtils.formatDateTime(new Date()));
loginRepository.updateLastLogoff(userInfo);
loginHistoryRepository.logoff(userInfo.getLastLogoffTime(), sessionIdAttribute.toString());
_logger.debug(
"session {} Destroyed as {} userId : {} , username : {}" ,
sessionIdAttribute,
userInfo.getLastLogoffTime(),
userInfo.getId(),
userInfo.getUsername());
Authentication authentication = (Authentication ) session.getAttribute(WebConstants.AUTHENTICATION);
if(authentication != null && authentication.getPrincipal() instanceof SigninPrincipal) {
SigninPrincipal signinPrincipal = ((SigninPrincipal) authentication.getPrincipal());
_logger.trace("session Id : " + session.getId());
init();
UserInfo userInfo = signinPrincipal.getUserInfo();
userInfo.setLastLogoffTime(DateUtils.formatDateTime(new Date()));
loginRepository.updateLastLogoff(userInfo);
loginHistoryRepository.logoff(userInfo.getLastLogoffTime(), userInfo.getOnlineTicket());
_logger.debug(
"session {} Destroyed as {} userId : {} , username : {}" ,
userInfo.getOnlineTicket(),
userInfo.getLastLogoffTime(),
userInfo.getId(),
userInfo.getUsername());
}
}
......
......@@ -15,8 +15,10 @@
*/
package org.maxkey.web;
package org.maxkey.authn.web;
import org.maxkey.web.WebConstants;
import org.maxkey.web.WebContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.security.core.Authentication;
......
......@@ -15,7 +15,7 @@
*/
package org.maxkey.authn.interceptor;
package org.maxkey.authn.web.interceptor;
import javax.servlet.RequestDispatcher;
import javax.servlet.http.HttpServletRequest;
......
......@@ -26,6 +26,7 @@ import org.maxkey.authn.online.OnlineTicketServiceFactory;
import org.maxkey.authn.realm.AbstractAuthenticationRealm;
import org.maxkey.authn.support.rememberme.AbstractRemeberMeService;
import org.maxkey.authn.support.rememberme.RemeberMeServiceFactory;
import org.maxkey.authn.web.SessionListenerAdapter;
import org.maxkey.configuration.ApplicationConfig;
import org.maxkey.configuration.AuthJwkConfig;
import org.maxkey.constants.ConstsPersistence;
......@@ -151,6 +152,16 @@ public class AuthenticationAutoConfiguration implements InitializingBean {
return onlineTicketService;
}
@Bean(name = "sessionListenerAdapter")
public SessionListenerAdapter sessionListenerAdapter(
LoginRepository loginRepository,
LoginHistoryRepository loginHistoryRepository
) {
SessionListenerAdapter sessionListenerAdapter =
new SessionListenerAdapter(loginRepository,loginHistoryRepository);
return sessionListenerAdapter;
}
@Override
public void afterPropertiesSet() throws Exception {
......
......@@ -28,7 +28,6 @@ import org.maxkey.constants.ConstsTimeInterval;
import org.maxkey.persistence.repository.InstitutionsRepository;
import org.maxkey.persistence.repository.LoginHistoryRepository;
import org.maxkey.persistence.repository.LoginRepository;
import org.maxkey.web.SessionListenerAdapter;
import org.maxkey.web.WebXssRequestFilter;
import org.maxkey.web.WebInstRequestFilter;
import org.slf4j.Logger;
......@@ -314,16 +313,6 @@ public class MvcAutoConfiguration implements InitializingBean , WebMvcConfigurer
return registrationBean;
}
@Bean(name = "sessionListenerAdapter")
public SessionListenerAdapter sessionListenerAdapter(
LoginRepository loginRepository,
LoginHistoryRepository loginHistoryRepository
) {
SessionListenerAdapter sessionListenerAdapter =
new SessionListenerAdapter(loginRepository,loginHistoryRepository);
return sessionListenerAdapter;
}
@Override
public void afterPropertiesSet() throws Exception {
......
......@@ -48,6 +48,8 @@ public class UserInfo extends JpaBaseEntity {
public static final String DEFAULT_PASSWORD_SUFFIX = "MaxKey@888";
String onlineTicket;
//
@Id
@Column
......@@ -385,7 +387,15 @@ public class UserInfo extends JpaBaseEntity {
this.id = id;
}
/**
public String getOnlineTicket() {
return onlineTicket;
}
public void setOnlineTicket(String onlineTicket) {
this.onlineTicket = onlineTicket;
}
/**
* @param username
*/
public UserInfo(String username) {
......
......@@ -40,7 +40,6 @@ import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
import org.springframework.core.env.PropertySource;
import org.springframework.core.env.StandardEnvironment;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.context.support.WebApplicationContextUtils;
/**
......@@ -63,9 +62,6 @@ public class InitializeContext extends HttpServlet {
public void init(ServletConfig config) throws ServletException {
super.init(config);
_logger.info("SecurityContextHolder StrategyName " + SessionSecurityContextHolderStrategy.class.getCanonicalName());
SecurityContextHolder.setStrategyName(SessionSecurityContextHolderStrategy.class.getCanonicalName());
WebContext.applicationContext = applicationContext;
org.apache.mybatis.jpa.util.WebContext.applicationContext = applicationContext;
......
......@@ -31,8 +31,6 @@ public class WebConstants {
public static final String CURRENT_USER = "current_user";
public static final String CURRENT_USER_SESSION_ID = "current_user_session_id";
public static final String CURRENT_COMPANY = "current_user_company";
public static final String CURRENT_DEPARTMENT = "current_user_department";
......
......@@ -84,7 +84,6 @@ public final class WebContext {
sessionAttributeNameList.add(WebConstants.CURRENT_USER);
sessionAttributeNameList.add(WebConstants.CURRENT_USER_PASSWORD_SET_TYPE);
sessionAttributeNameList.add(WebConstants.CURRENT_USER_SESSION_ID);
sessionAttributeNameList.add(WebConstants.CURRENT_INST);
......@@ -100,7 +99,6 @@ public final class WebContext {
logoutAttributeNameList.add(WebConstants.CURRENT_USER);
logoutAttributeNameList.add(WebConstants.CURRENT_USER_PASSWORD_SET_TYPE);
logoutAttributeNameList.add(WebConstants.CURRENT_USER_SESSION_ID);
logoutAttributeNameList.add(WebConstants.FIRST_SAVED_REQUEST_PARAMETER);
......
......@@ -80,7 +80,8 @@ public class GroupsService extends JpaBaseService<Groups> implements Serializab
boolean isDynamicTimeSupport = false;
boolean isBetweenEffectiveTime = false;
if(StringUtils.isNotBlank(dynamicGroup.getResumeTime())
&&StringUtils.isNotBlank(dynamicGroup.getSuspendTime())) {
&&StringUtils.isNotBlank(dynamicGroup.getSuspendTime())
&&!dynamicGroup.getSuspendTime().equals("00:00")) {
LocalTime currentTime = LocalDateTime.now().toLocalTime();
LocalTime resumeTime = LocalTime.parse(dynamicGroup.getResumeTime());
LocalTime suspendTime = LocalTime.parse(dynamicGroup.getSuspendTime());
......@@ -100,16 +101,17 @@ public class GroupsService extends JpaBaseService<Groups> implements Serializab
dynamicGroup.setOrgIdsList("'"+dynamicGroup.getOrgIdsList().replace(",", "','")+"'");
}
String filters = dynamicGroup.getFilters();
if(StringUtils.filtersSQLInjection(filters.toLowerCase())) {
_logger.info("filters include SQL Injection Attack Risk.");
return;
if(StringUtils.isNotBlank(filters)) {
if(StringUtils.filtersSQLInjection(filters.toLowerCase())) {
_logger.info("filters include SQL Injection Attack Risk.");
return;
}
filters = filters.replace("&", " AND ");
filters = filters.replace("|", " OR ");
dynamicGroup.setFilters(filters);
}
filters = filters.replace("&", " AND ");
filters = filters.replace("|", " OR ");
dynamicGroup.setFilters(filters);
if(isDynamicTimeSupport) {
if(isBetweenEffectiveTime) {
groupMemberService.deleteDynamicGroupMember(dynamicGroup);
......
......@@ -206,13 +206,15 @@
id,
groupid,
memberid,
type
type,
instid
)
select
concat('${id}',u.id) id,
'${id}' groupid,
u.id memberid,
'USER-DYNAMIC' TYPE
'USER-DYNAMIC' type,
'${instId}' instid
from mxk_userinfo u
where not exists(
select 1 from mxk_group_member gm
......
......@@ -29,7 +29,6 @@ import org.maxkey.persistence.repository.LoginRepository;
import org.maxkey.persistence.service.HistoryLoginService;
import org.maxkey.util.DateUtils;
import org.maxkey.util.StringUtils;
import org.maxkey.web.WebConstants;
import org.maxkey.web.WebContext;
import org.maxkey.web.message.Message;
import org.maxkey.web.message.MessageType;
......@@ -97,9 +96,7 @@ public class LoginSessionController {
boolean isTerminated = false;
try {
String currentUserSessionId = "";
if(WebContext.getAttribute(WebConstants.CURRENT_USER_SESSION_ID) != null) {
currentUserSessionId = WebContext.getAttribute(WebConstants.CURRENT_USER_SESSION_ID).toString();
}
for(String sessionId : StringUtils.string2List(ids, ",")) {
_logger.trace("terminate session Id {} ",sessionId);
if(currentUserSessionId.contains(sessionId)) {
......
......@@ -83,7 +83,7 @@ public class HistoryLoginAppAdapter implements AsyncHandlerInterceptor {
_logger.debug("postHandle");
final Apps app = (Apps)WebContext.getAttribute(WebConstants.AUTHORIZE_SIGN_ON_APP);
String sessionId = (String)WebContext.getAttribute(WebConstants.CURRENT_USER_SESSION_ID);
String sessionId = "";//(String)WebContext.getAttribute(WebConstants.CURRENT_USER_SESSION_ID);
final UserInfo userInfo = WebContext.getUserInfo();
_logger.debug("sessionId : " + sessionId + " ,appId : " + app.getId());
HistoryLoginApps historyLoginApps = new HistoryLoginApps();
......
......@@ -20,12 +20,12 @@ package org.maxkey;
import java.util.List;
import org.maxkey.authn.AbstractAuthenticationProvider;
import org.maxkey.authn.CurrentUserMethodArgumentResolver;
import org.maxkey.authn.interceptor.PermissionAdapter;
import org.maxkey.authn.support.jwt.HttpJwtEntryPoint;
import org.maxkey.authn.support.jwt.JwtLoginService;
import org.maxkey.authn.support.rememberme.AbstractRemeberMeService;
import org.maxkey.authn.support.rememberme.HttpRemeberMeEntryPoint;
import org.maxkey.authn.web.CurrentUserMethodArgumentResolver;
import org.maxkey.authn.web.interceptor.PermissionAdapter;
import org.maxkey.configuration.ApplicationConfig;
import org.maxkey.web.interceptor.HistoryLogsAdapter;
import org.maxkey.web.interceptor.RestApiPermissionAdapter;
......@@ -126,13 +126,19 @@ public class MaxKeyMgtMvcConfig implements WebMvcConfigurer {
.addPathPatterns("/roles/**")
.addPathPatterns("/rolemembers/**")
.addPathPatterns("/resources/**")
.addPathPatterns("/access/**")
.addPathPatterns("/access/**/**")
.addPathPatterns("/permissions/**")
.addPathPatterns("/permissions/**/**")
.addPathPatterns("/config/**")
.addPathPatterns("/config/**/**")
.addPathPatterns("/logs/**")
.addPathPatterns("/historys/**")
.addPathPatterns("/historys/**/**")
.addPathPatterns("/session/**")
.addPathPatterns("/socialsprovider/**")
.addPathPatterns("/accountsstrategy/**")
.addPathPatterns("/institutions/**")
......
......@@ -15,7 +15,7 @@
*/
package org.maxkey.web.contorller;
package org.maxkey.web.access.contorller;
import org.apache.mybatis.jpa.persistence.JpaPageResults;
import org.maxkey.constants.ConstsOperateMessage;
......@@ -39,7 +39,7 @@ import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping(value={"/groupMember"})
@RequestMapping(value={"/access/groupmembers"})
public class GroupMemberController {
final static Logger _logger = LoggerFactory.getLogger(GroupMemberController.class);
......
......@@ -15,7 +15,7 @@
*/
package org.maxkey.web.contorller;
package org.maxkey.web.access.contorller;
import org.apache.mybatis.jpa.persistence.JpaPageResults;
import org.maxkey.constants.ConstsOperateMessage;
......@@ -38,7 +38,7 @@ import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping(value={"/groupPrivileges"})
@RequestMapping(value={"/access/privileges"})
public class GroupPrivilegesController {
final static Logger _logger = LoggerFactory.getLogger(GroupPrivilegesController.class);
......
......@@ -15,137 +15,101 @@
*/
package org.maxkey.web.contorller;
package org.maxkey.web.access.contorller;
import org.apache.mybatis.jpa.persistence.JpaPageResults;
import org.maxkey.constants.ConstsOperateMessage;
import org.maxkey.authn.annotation.CurrentUser;
import org.maxkey.entity.Groups;
import org.maxkey.entity.Message;
import org.maxkey.entity.UserInfo;
import org.maxkey.persistence.service.GroupsService;
import org.maxkey.web.WebContext;
import org.maxkey.web.message.Message;
import org.maxkey.web.message.MessageType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping(value={"/groups"})
@RequestMapping(value={"/access/groups"})
public class GroupsController {
final static Logger _logger = LoggerFactory.getLogger(GroupsController.class);
@Autowired
@Qualifier("groupsService")
GroupsService groupsService;
@RequestMapping(value={"/list"})
public ModelAndView groupsList(){
return new ModelAndView("groups/groupsList");
}
@RequestMapping(value={"/selectGroupsList"})
public ModelAndView selectGroupsList(){
return new ModelAndView("groups/selectGroupsList");
}
@RequestMapping(value = { "/grid" })
@RequestMapping(value = { "/fetch" }, produces = {MediaType.APPLICATION_JSON_VALUE})
@ResponseBody
public JpaPageResults<Groups> queryDataGrid(@ModelAttribute("groups") Groups groups) {
public ResponseEntity<?> fetch(
@ModelAttribute Groups groups,
@CurrentUser UserInfo currentUser) {
_logger.debug(""+groups);
groups.setInstId(WebContext.getUserInfo().getInstId());
return groupsService.queryPageResults(groups);
groups.setInstId(currentUser.getInstId());
return new Message<JpaPageResults<Groups>>(
groupsService.queryPageResults(groups)).buildResponse();
}
@RequestMapping(value = { "/forwardAdd" })
public ModelAndView forwardAdd() {
return new ModelAndView("groups/groupAdd");
@ResponseBody
@RequestMapping(value={"/query"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> query(@ModelAttribute Groups group,@CurrentUser UserInfo currentUser) {
_logger.debug("-query :" + group);
group.setInstId(currentUser.getInstId());
if (groupsService.load(group)!=null) {
return new Message<Groups>(Message.SUCCESS).buildResponse();
} else {
return new Message<Groups>(Message.FAIL).buildResponse();
}
}
@RequestMapping(value = { "/forwardUpdate/{id}" })
public ModelAndView forwardUpdate(@PathVariable("id") String id) {
ModelAndView modelAndView=new ModelAndView("groups/groupUpdate");
@RequestMapping(value = { "/get/{id}" }, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> get(@PathVariable("id") String id,@CurrentUser UserInfo currentUser) {
Groups group=groupsService.get(id);
modelAndView.addObject("model",group);
return modelAndView;
return new Message<Groups>(group).buildResponse();
}
@ResponseBody
@RequestMapping(value={"/add"})
public Message insert(@ModelAttribute("group") Groups group) {
@RequestMapping(value={"/add"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> insert(@RequestBody Groups group,@CurrentUser UserInfo currentUser) {
_logger.debug("-Add :" + group);
group.setInstId(WebContext.getUserInfo().getInstId());
group.setInstId(currentUser.getInstId());
if (groupsService.insert(group)) {
groupsService.refreshDynamicGroups(group);
return new Message(WebContext.getI18nValue(ConstsOperateMessage.INSERT_SUCCESS),MessageType.success);
return new Message<Groups>(Message.SUCCESS).buildResponse();
} else {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.INSERT_SUCCESS),MessageType.error);
return new Message<Groups>(Message.FAIL).buildResponse();
}
}
/**
* 查询
* @param group
* @return
*/
@ResponseBody
@RequestMapping(value={"/query"})
public Message query(@ModelAttribute("group") Groups group) {
_logger.debug("-query :" + group);
group.setInstId(WebContext.getUserInfo().getInstId());
if (groupsService.load(group)!=null) {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.INSERT_SUCCESS),MessageType.success);
} else {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.INSERT_ERROR),MessageType.error);
}
}
/**
* 修改
* @param group
* @return
*/
@ResponseBody
@RequestMapping(value={"/update"})
public Message update(@ModelAttribute("group") Groups group) {
@RequestMapping(value={"/update"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> update(@RequestBody Groups group,@CurrentUser UserInfo currentUser) {
_logger.debug("-update group :" + group);
group.setInstId(WebContext.getUserInfo().getInstId());
group.setInstId(currentUser.getInstId());
if (groupsService.update(group)) {
groupsService.refreshDynamicGroups(group);
return new Message(WebContext.getI18nValue(ConstsOperateMessage.UPDATE_SUCCESS),MessageType.success);
return new Message<Groups>(Message.SUCCESS).buildResponse();
} else {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.UPDATE_ERROR),MessageType.error);
return new Message<Groups>(Message.FAIL).buildResponse();
}
}
@ResponseBody
@RequestMapping(value={"/delete"})
public Message delete(@ModelAttribute("group") Groups group) {
_logger.debug("-delete group :" + group);
@RequestMapping(value={"/delete"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> delete(@RequestParam("ids") String ids,@CurrentUser UserInfo currentUser) {
_logger.debug("-delete ids : {}" , ids);
if (groupsService.deleteById(group.getId())) {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.DELETE_SUCCESS),MessageType.success);
if (groupsService.deleteBatch(ids)) {
return new Message<Groups>(Message.SUCCESS).buildResponse();
} else {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.DELETE_SUCCESS),MessageType.error);
return new Message<Groups>(Message.FAIL).buildResponse();
}
}
}
......@@ -15,12 +15,12 @@
*/
package org.maxkey.web.historys.contorller;
package org.maxkey.web.access.contorller;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.mybatis.jpa.persistence.JpaPageResults;
import org.maxkey.authn.CurrentUser;
import org.maxkey.authn.annotation.CurrentUser;
import org.maxkey.authn.online.OnlineTicketService;
import org.maxkey.entity.HistoryLogin;
import org.maxkey.entity.Message;
......@@ -30,8 +30,6 @@ import org.maxkey.persistence.repository.LoginRepository;
import org.maxkey.persistence.service.HistoryLoginService;
import org.maxkey.util.DateUtils;
import org.maxkey.util.StringUtils;
import org.maxkey.web.WebConstants;
import org.maxkey.web.WebContext;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
......@@ -46,14 +44,14 @@ import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* 登录日志查询.
* 登录会话管理.
*
* @author Crystal.sea
*
*/
@Controller
@RequestMapping(value = { "/session" })
@RequestMapping(value = { "/access/session" })
public class LoginSessionController {
static final Logger _logger = LoggerFactory.getLogger(LoginSessionController.class);
......@@ -66,7 +64,7 @@ public class LoginSessionController {
LoginHistoryRepository loginHistoryRepository;
@Autowired
OnlineTicketService onlineTicketServices;
OnlineTicketService onlineTicketService;
/**
* 查询登录日志.
......@@ -74,15 +72,15 @@ public class LoginSessionController {
* @param logsAuth
* @return
*/
@RequestMapping(value = { "/sessionList/fetch" })
@RequestMapping(value = { "/fetch" })
@ResponseBody
public ResponseEntity<?> fetch(
@ModelAttribute("historyLogin") HistoryLogin historyLogin,
@CurrentUser UserInfo currentUser) {
_logger.debug("history/session/fetch {}" , historyLogin);
historyLogin.setInstId(WebContext.getUserInfo().getInstId());
historyLogin.setInstId(currentUser.getInstId());
return new Message<JpaPageResults<HistoryLogin>>(
historyLoginService.queryPageResults(historyLogin)
historyLoginService.queryOnlineSession(historyLogin)
).buildResponse();
}
......@@ -90,23 +88,19 @@ public class LoginSessionController {
@ResponseBody
@RequestMapping(value="/terminate")
public ResponseEntity<?> deleteUsersById(@RequestParam("id") String ids,@CurrentUser UserInfo currentUser) {
public ResponseEntity<?> terminate(@RequestParam("ids") String ids,@CurrentUser UserInfo currentUser) {
_logger.debug(ids);
boolean isTerminated = false;
try {
String currentUserSessionId = "";
if(WebContext.getAttribute(WebConstants.CURRENT_USER_SESSION_ID) != null) {
currentUserSessionId = WebContext.getAttribute(WebConstants.CURRENT_USER_SESSION_ID).toString();
}
for(String sessionId : StringUtils.string2List(ids, ",")) {
_logger.trace("terminate session Id {} ",sessionId);
if(currentUserSessionId.contains(sessionId)) {
if(currentUser.getOnlineTicket().contains(sessionId)) {
continue;//skip current session
}
String lastLogoffTime = DateUtils.formatDateTime(new Date());
loginRepository.updateLastLogoff(currentUser);
loginHistoryRepository.logoff(lastLogoffTime, sessionId);
onlineTicketServices.remove("OT-" + sessionId);
onlineTicketService.remove("OT-" + sessionId);
}
isTerminated = true;
}catch(Exception e) {
......@@ -119,6 +113,7 @@ public class LoginSessionController {
return new Message<HistoryLogin>(Message.ERROR).buildResponse();
}
}
@InitBinder
public void initBinder(WebDataBinder binder) {
SimpleDateFormat dateFormat = new SimpleDateFormat(DateUtils.FORMAT_DATE_HH_MM_SS);
......
package org.maxkey.web.access.contorller;
\ No newline at end of file
......@@ -15,7 +15,7 @@
*/
package org.maxkey.web.contorller;
package org.maxkey.web.config.contorller;
import org.apache.mybatis.jpa.persistence.JpaPageResults;
import org.maxkey.constants.ConstsOperateMessage;
......
......@@ -15,136 +15,92 @@
*/
package org.maxkey.web.apps.contorller;
package org.maxkey.web.config.contorller;
import org.apache.mybatis.jpa.persistence.JpaPageResults;
import org.maxkey.constants.ConstsOperateMessage;
import org.maxkey.authn.annotation.CurrentUser;
import org.maxkey.entity.Message;
import org.maxkey.entity.UserInfo;
import org.maxkey.entity.apps.AppsAdapters;
import org.maxkey.persistence.service.AppsAdaptersService;
import org.maxkey.web.WebContext;
import org.maxkey.web.message.Message;
import org.maxkey.web.message.MessageType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping(value={"/apps/adapters"})
@RequestMapping(value={"/config/adapters"})
public class AdaptersController {
final static Logger _logger = LoggerFactory.getLogger(AdaptersController.class);
@Autowired
@Qualifier("appsAdaptersService")
AppsAdaptersService appsAdaptersService;
@RequestMapping(value={"/list"})
public ModelAndView rolesList(){
return new ModelAndView("apps/adapters/adaptersList");
}
@RequestMapping(value={"/selectAdaptersList"})
public ModelAndView selectAdaptersList(@RequestParam(name="protocol",required=false) String protocol){
ModelAndView modelAndView=new ModelAndView("apps/adapters/selectAdaptersList");
modelAndView.addObject("protocol", protocol);
return modelAndView;
}
AppsAdaptersService appsAdaptersService;
@RequestMapping(value = { "/grid" })
@RequestMapping(value = { "/fetch" }, produces = {MediaType.APPLICATION_JSON_VALUE})
@ResponseBody
public JpaPageResults<AppsAdapters> queryDataGrid(@ModelAttribute("appsAdapter") AppsAdapters appsAdapter) {
public ResponseEntity<?> fetch(@ModelAttribute AppsAdapters appsAdapter) {
_logger.debug(""+appsAdapter);
return appsAdaptersService.queryPageResults(appsAdapter);
return new Message<JpaPageResults<AppsAdapters>>(
appsAdaptersService.queryPageResults(appsAdapter)).buildResponse();
}
@RequestMapping(value = { "/forwardAdd" })
public ModelAndView forwardAdd() {
return new ModelAndView("apps/adapters/adapterAdd");
@ResponseBody
@RequestMapping(value={"/query"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> query(@ModelAttribute AppsAdapters appsAdapter,@CurrentUser UserInfo currentUser) {
_logger.debug("-query :" + appsAdapter);
if (appsAdaptersService.load(appsAdapter)!=null) {
return new Message<AppsAdapters>(Message.SUCCESS).buildResponse();
} else {
return new Message<AppsAdapters>(Message.SUCCESS).buildResponse();
}
}
@RequestMapping(value = { "/forwardUpdate/{id}" })
public ModelAndView forwardUpdate(@PathVariable("id") String id) {
ModelAndView modelAndView=new ModelAndView("apps/adapters/adapterUpdate");
@RequestMapping(value = { "/get/{id}" }, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> get(@PathVariable("id") String id) {
AppsAdapters appsAdapter=appsAdaptersService.get(id);
modelAndView.addObject("model",appsAdapter);
return modelAndView;
return new Message<AppsAdapters>(appsAdapter).buildResponse();
}
@ResponseBody
@RequestMapping(value={"/add"})
public Message insert(@ModelAttribute("appsAdapter") AppsAdapters appsAdapter) {
@RequestMapping(value={"/add"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> insert(@RequestBody AppsAdapters appsAdapter,@CurrentUser UserInfo currentUser) {
_logger.debug("-Add :" + appsAdapter);
if (appsAdaptersService.insert(appsAdapter)) {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.INSERT_SUCCESS),MessageType.success);
return new Message<AppsAdapters>(Message.SUCCESS).buildResponse();
} else {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.INSERT_SUCCESS),MessageType.error);
return new Message<AppsAdapters>(Message.FAIL).buildResponse();
}
}
/**
* 查询
* @param role
* @return
*/
@ResponseBody
@RequestMapping(value={"/query"})
public Message query(@ModelAttribute("appsAdapter") AppsAdapters appsAdapter) {
_logger.debug("-query :" + appsAdapter);
if (appsAdaptersService.load(appsAdapter)!=null) {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.INSERT_SUCCESS),MessageType.success);
} else {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.INSERT_ERROR),MessageType.error);
}
}
/**
* 修改
* @param role
* @return
*/
@ResponseBody
@RequestMapping(value={"/update"})
public Message update(@ModelAttribute("appsAdapter") AppsAdapters appsAdapter) {
_logger.debug("-update appsAdapter :" + appsAdapter);
@RequestMapping(value={"/update"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> update(@RequestBody AppsAdapters appsAdapter,@CurrentUser UserInfo currentUser) {
_logger.debug("-update :" + appsAdapter);
if (appsAdaptersService.update(appsAdapter)) {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.UPDATE_SUCCESS),MessageType.success);
return new Message<AppsAdapters>(Message.SUCCESS).buildResponse();
} else {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.UPDATE_ERROR),MessageType.error);
return new Message<AppsAdapters>(Message.FAIL).buildResponse();
}
}
@ResponseBody
@RequestMapping(value={"/delete"})
public Message delete(@ModelAttribute("appsAdapter") AppsAdapters appsAdapter) {
_logger.debug("-delete appsAdapter :" + appsAdapter);
if (appsAdaptersService.deleteBatch(appsAdapter.getId())) {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.DELETE_SUCCESS),MessageType.success);
@RequestMapping(value={"/delete"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> delete(@RequestParam("ids") String ids,@CurrentUser UserInfo currentUser) {
_logger.debug("-delete ids : {} " , ids);
if (appsAdaptersService.deleteBatch(ids)) {
return new Message<AppsAdapters>(Message.SUCCESS).buildResponse();
} else {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.DELETE_SUCCESS),MessageType.error);
return new Message<AppsAdapters>(Message.FAIL).buildResponse();
}
}
}
......@@ -15,10 +15,10 @@
*/
package org.maxkey.web.contorller;
package org.maxkey.web.config.contorller;
import org.apache.commons.lang3.StringUtils;
import org.maxkey.authn.CurrentUser;
import org.maxkey.authn.annotation.CurrentUser;
import org.maxkey.crypto.password.PasswordReciprocal;
import org.maxkey.entity.EmailSenders;
import org.maxkey.entity.Message;
......@@ -37,57 +37,44 @@ import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping(value={"/config/emailsenders"})
public class EmailSendersController {
final static Logger _logger = LoggerFactory.getLogger(EmailSendersController.class);
@Autowired
private EmailSendersService emailSendersService;
@RequestMapping(value={"/get"})
public ResponseEntity<?> get(@CurrentUser UserInfo currentUser){
EmailSenders emailSenders = emailSendersService.get(currentUser.getInstId());
if(emailSenders != null && StringUtils.isNotBlank(emailSenders.getCredentials())) {
emailSenders.setCredentials(PasswordReciprocal.getInstance().decoder(emailSenders.getCredentials()));
}else {
emailSenders =new EmailSenders();
emailSenders.setProtocol("smtp");
emailSenders.setEncoding("utf-8");
}
return new Message<EmailSenders>(emailSenders).buildResponse();
}
final static Logger _logger = LoggerFactory.getLogger(EmailSendersController.class);
@Autowired
private EmailSendersService emailSendersService;
/**
* 读取
* @return
*/
@RequestMapping(value={"/get"})
public ResponseEntity<?> get(@CurrentUser UserInfo currentUser){
EmailSenders emailSenders = emailSendersService.get(currentUser.getInstId());
if(emailSenders != null && StringUtils.isNotBlank(emailSenders.getCredentials())) {
emailSenders.setCredentials(PasswordReciprocal.getInstance().decoder(emailSenders.getCredentials()));
@RequestMapping(value={"/update"})
@ResponseBody
public ResponseEntity<?> update( @RequestBody EmailSenders emailSenders,@CurrentUser UserInfo currentUser,BindingResult result) {
_logger.debug("update emailSenders : "+emailSenders);
emailSenders.setInstId(currentUser.getInstId());
emailSenders.setCredentials(PasswordReciprocal.getInstance().encode(emailSenders.getCredentials()));
if(StringUtils.isBlank(emailSenders.getId())) {
emailSenders.setId(emailSenders.getInstId());
if(emailSendersService.insert(emailSenders)) {
return new Message<EmailSenders>(Message.SUCCESS).buildResponse();
}else {
emailSenders =new EmailSenders();
emailSenders.setProtocol("smtp");
emailSenders.setEncoding("utf-8");
return new Message<EmailSenders>(Message.ERROR).buildResponse();
}
return new Message<EmailSenders>(emailSenders).buildResponse();
}
/**
* 更新
* @param emailSenders
* @return
*/
@RequestMapping(value={"/update"})
@ResponseBody
public ResponseEntity<?> update( @RequestBody EmailSenders emailSenders,@CurrentUser UserInfo currentUser,BindingResult result) {
_logger.debug("update emailSenders : "+emailSenders);
emailSenders.setInstId(currentUser.getInstId());
emailSenders.setCredentials(PasswordReciprocal.getInstance().encode(emailSenders.getCredentials()));
if(StringUtils.isBlank(emailSenders.getId())) {
emailSenders.setId(emailSenders.getInstId());
if(emailSendersService.insert(emailSenders)) {
return new Message<EmailSenders>(Message.SUCCESS).buildResponse();
}else {
return new Message<EmailSenders>(Message.ERROR).buildResponse();
}
}else {
if(emailSendersService.update(emailSenders)) {
return new Message<EmailSenders>(Message.SUCCESS).buildResponse();
}else {
if(emailSendersService.update(emailSenders)) {
return new Message<EmailSenders>(Message.SUCCESS).buildResponse();
}else {
return new Message<EmailSenders>(Message.ERROR).buildResponse();
}
return new Message<EmailSenders>(Message.ERROR).buildResponse();
}
}
}
}
......@@ -15,7 +15,7 @@
*/
package org.maxkey.web.contorller;
package org.maxkey.web.config.contorller;
import org.maxkey.constants.ConstsOperateMessage;
import org.maxkey.entity.Institutions;
......
......@@ -15,10 +15,10 @@
*/
package org.maxkey.web.contorller;
package org.maxkey.web.config.contorller;
import org.apache.commons.lang3.StringUtils;
import org.maxkey.authn.CurrentUser;
import org.maxkey.authn.annotation.CurrentUser;
import org.maxkey.crypto.password.PasswordReciprocal;
import org.maxkey.entity.LdapContext;
import org.maxkey.entity.Message;
......@@ -38,50 +38,37 @@ import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping(value={"/config/ldapcontext"})
public class LdapContextController {
final static Logger _logger = LoggerFactory.getLogger(LdapContextController.class);
@Autowired
private LdapContextService ldapContextService;
@RequestMapping(value={"/get"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> get(@CurrentUser UserInfo currentUser){
LdapContext ldapContext = ldapContextService.get(currentUser.getInstId());
if(ldapContext != null && StringUtils.isNoneBlank(ldapContext.getCredentials())) {
ldapContext.setCredentials(PasswordReciprocal.getInstance().decoder(ldapContext.getCredentials()));
}
return new Message<LdapContext>(ldapContext).buildResponse();
}
final static Logger _logger = LoggerFactory.getLogger(LdapContextController.class);
@Autowired
private LdapContextService ldapContextService;
/**
* 读取
* @return
*/
@RequestMapping(value={"/get"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> get(@CurrentUser UserInfo currentUser){
LdapContext ldapContext = ldapContextService.get(currentUser.getInstId());
if(ldapContext != null && StringUtils.isNoneBlank(ldapContext.getCredentials())) {
ldapContext.setCredentials(PasswordReciprocal.getInstance().decoder(ldapContext.getCredentials()));
}
return new Message<LdapContext>(ldapContext).buildResponse();
@RequestMapping(value={"/update"})
@ResponseBody
public ResponseEntity<?> update( @RequestBody LdapContext ldapContext,@CurrentUser UserInfo currentUser,BindingResult result) {
_logger.debug("update ldapContext : "+ldapContext);
ldapContext.setCredentials(PasswordReciprocal.getInstance().encode(ldapContext.getCredentials()));
ldapContext.setInstId(currentUser.getInstId());
boolean updateResult = false;
if(StringUtils.isBlank(ldapContext.getId())) {
ldapContext.setId(ldapContext.getInstId());
updateResult = ldapContextService.insert(ldapContext);
}else {
updateResult = ldapContextService.update(ldapContext);
}
/**
* 更新
* @param sysConfig
* @return
*/
@RequestMapping(value={"/update"})
@ResponseBody
public ResponseEntity<?> update( @RequestBody LdapContext ldapContext,@CurrentUser UserInfo currentUser,BindingResult result) {
_logger.debug("update ldapContext : "+ldapContext);
ldapContext.setCredentials(PasswordReciprocal.getInstance().encode(ldapContext.getCredentials()));
ldapContext.setInstId(currentUser.getInstId());
boolean updateResult = false;
if(StringUtils.isBlank(ldapContext.getId())) {
ldapContext.setId(ldapContext.getInstId());
updateResult = ldapContextService.insert(ldapContext);
}else {
updateResult = ldapContextService.update(ldapContext);
}
if(updateResult) {
return new Message<LdapContext>(Message.SUCCESS).buildResponse();
} else {
return new Message<LdapContext>(Message.FAIL).buildResponse();
}
if(updateResult) {
return new Message<LdapContext>(Message.SUCCESS).buildResponse();
} else {
return new Message<LdapContext>(Message.FAIL).buildResponse();
}
}
}
......@@ -15,7 +15,7 @@
*/
package org.maxkey.web.contorller;
package org.maxkey.web.config.contorller;
import org.apache.commons.lang3.StringUtils;
import org.maxkey.constants.ConstsOperateMessage;
......
......@@ -15,7 +15,7 @@
*/
package org.maxkey.web.contorller;
package org.maxkey.web.config.contorller;
import org.apache.mybatis.jpa.persistence.JpaPageResults;
import org.maxkey.constants.ConstsOperateMessage;
......
......@@ -15,11 +15,11 @@
*/
package org.maxkey.web.contorller;
package org.maxkey.web.config.contorller;
import javax.validation.Valid;
import org.maxkey.authn.CurrentUser;
import org.maxkey.authn.annotation.CurrentUser;
import org.maxkey.entity.Message;
import org.maxkey.entity.PasswordPolicy;
import org.maxkey.entity.UserInfo;
......@@ -38,84 +38,67 @@ import org.springframework.web.bind.annotation.RequestMapping;
@Controller
@RequestMapping(value={"/config/passwordpolicy"})
public class PasswordPolicyController {
final static Logger _logger = LoggerFactory.getLogger(PasswordPolicyController.class);
final static Logger _logger = LoggerFactory.getLogger(PasswordPolicyController.class);
@Autowired
private PasswordPolicyService passwordPolicyService;
@Autowired
private PasswordPolicyService passwordPolicyService;
@RequestMapping(value={"/get"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> get(@CurrentUser UserInfo currentUser){
PasswordPolicy passwordPolicy = passwordPolicyService.get(currentUser.getInstId());
return new Message<PasswordPolicy>(passwordPolicy).buildResponse();
}
@RequestMapping(value={"/update"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> update(@Valid @RequestBody PasswordPolicy passwordPolicy,@CurrentUser UserInfo currentUser,BindingResult result) {
_logger.debug("updateRole passwordPolicy : "+passwordPolicy);
//Message message = this.validate(result, passwordPolicy);
/**
* 读取
* @return
*/
@RequestMapping(value={"/get"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> get(@CurrentUser UserInfo currentUser){
PasswordPolicy passwordPolicy = passwordPolicyService.get(currentUser.getInstId());
return new Message<PasswordPolicy>(passwordPolicy).buildResponse();
if(passwordPolicyService.update(passwordPolicy)) {
return new Message<PasswordPolicy>(Message.SUCCESS).buildResponse();
} else {
return new Message<PasswordPolicy>(Message.ERROR).buildResponse();
}
}
public Message validate(BindingResult result,PasswordPolicy passwordPolicy) {
if (result.hasErrors()) {
return new Message(result);
}
if(passwordPolicy.getMinLength() < 3) {
FieldError fe = new FieldError("passwordPolicy", "minLength",
passwordPolicy.getMinLength(), true,
new String[]{"ui.passwordpolicy.xe00000001"},//密码最小长度不能小于3位字符
null, null);
result.addError(fe);
return new Message(result);
}
if(passwordPolicy.getMinLength() > passwordPolicy.getMaxLength()) {
FieldError fe = new FieldError("passwordPolicy", "maxLength",
passwordPolicy.getMinLength(), true,
new String[]{"ui.passwordpolicy.xe00000002"},//密码最大长度不能小于最小长度
null, null);
result.addError(fe);
return new Message(result);
}
/**
* 更新
* @param sysConfig
* @return
*/
@RequestMapping(value={"/update"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> update(@Valid @RequestBody PasswordPolicy passwordPolicy,@CurrentUser UserInfo currentUser,BindingResult result) {
_logger.debug("updateRole passwordPolicy : "+passwordPolicy);
//Message message = this.validate(result, passwordPolicy);
if(passwordPolicyService.update(passwordPolicy)) {
return new Message<PasswordPolicy>(Message.SUCCESS).buildResponse();
} else {
return new Message<PasswordPolicy>(Message.ERROR).buildResponse();
}
if(passwordPolicy.getDigits() + passwordPolicy.getLowerCase() + passwordPolicy.getUpperCase() + passwordPolicy.getSpecialChar() < 2) {
FieldError fe = new FieldError("passwordPolicy", "specialChar",
2, true,
new String[]{"ui.passwordpolicy.xe00000003"},//密码包含小写字母、大写字母、数字、特殊字符的个数不能小于2
null, null);
result.addError(fe);
return new Message(result);
}
/**
* 验证函数
* @param result
* @param passwordPolicy
* @return
*/
public Message validate(BindingResult result,PasswordPolicy passwordPolicy) {
if (result.hasErrors()) {
return new Message(result);
}
if(passwordPolicy.getMinLength() < 3) {
FieldError fe = new FieldError("passwordPolicy", "minLength",
passwordPolicy.getMinLength(), true,
new String[]{"ui.passwordpolicy.xe00000001"},//密码最小长度不能小于3位字符
null, null);
result.addError(fe);
return new Message(result);
}
if(passwordPolicy.getMinLength() > passwordPolicy.getMaxLength()) {
FieldError fe = new FieldError("passwordPolicy", "maxLength",
passwordPolicy.getMinLength(), true,
new String[]{"ui.passwordpolicy.xe00000002"},//密码最大长度不能小于最小长度
null, null);
result.addError(fe);
return new Message(result);
}
if(passwordPolicy.getDigits() + passwordPolicy.getLowerCase() + passwordPolicy.getUpperCase() + passwordPolicy.getSpecialChar() < 2) {
FieldError fe = new FieldError("passwordPolicy", "specialChar",
2, true,
new String[]{"ui.passwordpolicy.xe00000003"},//密码包含小写字母、大写字母、数字、特殊字符的个数不能小于2
null, null);
result.addError(fe);
return new Message(result);
}
if(passwordPolicy.getDigits() + passwordPolicy.getLowerCase() + passwordPolicy.getUpperCase() + passwordPolicy.getSpecialChar() > passwordPolicy.getMaxLength()) {
FieldError fe = new FieldError("passwordPolicy", "specialChar",
passwordPolicy.getMinLength(), true,
new String[]{"ui.passwordpolicy.xe00000004"},//密码包含小写字母、大写字母、数字、特殊字符的个数不能大于密码的最大长度
null, null);
result.addError(fe);
return new Message(result);
}
return null;
if(passwordPolicy.getDigits() + passwordPolicy.getLowerCase() + passwordPolicy.getUpperCase() + passwordPolicy.getSpecialChar() > passwordPolicy.getMaxLength()) {
FieldError fe = new FieldError("passwordPolicy", "specialChar",
passwordPolicy.getMinLength(), true,
new String[]{"ui.passwordpolicy.xe00000004"},//密码包含小写字母、大写字母、数字、特殊字符的个数不能大于密码的最大长度
null, null);
result.addError(fe);
return new Message(result);
}
return null;
}
}
......@@ -15,10 +15,10 @@
*/
package org.maxkey.web.contorller;
package org.maxkey.web.config.contorller;
import org.apache.commons.lang3.StringUtils;
import org.maxkey.authn.CurrentUser;
import org.maxkey.authn.annotation.CurrentUser;
import org.maxkey.crypto.password.PasswordReciprocal;
import org.maxkey.entity.Message;
import org.maxkey.entity.SmsProvider;
......@@ -38,49 +38,37 @@ import org.springframework.web.bind.annotation.ResponseBody;
@Controller
@RequestMapping(value={"/config/smsprovider"})
public class SmsProviderController {
final static Logger _logger = LoggerFactory.getLogger(SmsProviderController.class);
@Autowired
private SmsProviderService smsProviderService;
final static Logger _logger = LoggerFactory.getLogger(SmsProviderController.class);
@Autowired
private SmsProviderService smsProviderService;
/**
* 读取
* @return
*/
@RequestMapping(value={"/get"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> get(@CurrentUser UserInfo currentUser){
SmsProvider smsProvider = smsProviderService.get(currentUser.getInstId());
if(smsProvider != null && StringUtils.isNoneBlank(smsProvider.getId())) {
smsProvider.setAppSecret(PasswordReciprocal.getInstance().decoder(smsProvider.getAppSecret()));
}
return new Message<SmsProvider>(smsProvider).buildResponse();
@RequestMapping(value={"/get"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> get(@CurrentUser UserInfo currentUser){
SmsProvider smsProvider = smsProviderService.get(currentUser.getInstId());
if(smsProvider != null && StringUtils.isNoneBlank(smsProvider.getId())) {
smsProvider.setAppSecret(PasswordReciprocal.getInstance().decoder(smsProvider.getAppSecret()));
}
/**
* 更新
* @param sysConfig
* @return
*/
@RequestMapping(value={"/update"})
@ResponseBody
public ResponseEntity<?> update( @RequestBody SmsProvider smsProvider,@CurrentUser UserInfo currentUser,BindingResult result) {
_logger.debug("update smsProvider : "+smsProvider);
smsProvider.setAppSecret(PasswordReciprocal.getInstance().encode(smsProvider.getAppSecret()));
smsProvider.setInstId(currentUser.getInstId());
boolean updateResult = false;
if(StringUtils.isBlank(smsProvider.getId())) {
smsProvider.setId(smsProvider.getInstId());
updateResult = smsProviderService.insert(smsProvider);
}else {
updateResult = smsProviderService.update(smsProvider);
}
if(updateResult) {
return new Message<SmsProvider>(Message.SUCCESS).buildResponse();
} else {
return new Message<SmsProvider>(Message.FAIL).buildResponse();
}
}
return new Message<SmsProvider>(smsProvider).buildResponse();
}
@RequestMapping(value={"/update"})
@ResponseBody
public ResponseEntity<?> update( @RequestBody SmsProvider smsProvider,@CurrentUser UserInfo currentUser,BindingResult result) {
_logger.debug("update smsProvider : "+smsProvider);
smsProvider.setAppSecret(PasswordReciprocal.getInstance().encode(smsProvider.getAppSecret()));
smsProvider.setInstId(currentUser.getInstId());
boolean updateResult = false;
if(StringUtils.isBlank(smsProvider.getId())) {
smsProvider.setId(smsProvider.getInstId());
updateResult = smsProviderService.insert(smsProvider);
}else {
updateResult = smsProviderService.update(smsProvider);
}
if(updateResult) {
return new Message<SmsProvider>(Message.SUCCESS).buildResponse();
} else {
return new Message<SmsProvider>(Message.FAIL).buildResponse();
}
}
}
......@@ -15,130 +15,101 @@
*/
package org.maxkey.web.contorller;
package org.maxkey.web.config.contorller;
import org.apache.mybatis.jpa.persistence.JpaPageResults;
import org.maxkey.constants.ConstsOperateMessage;
import org.maxkey.authn.annotation.CurrentUser;
import org.maxkey.crypto.password.PasswordReciprocal;
import org.maxkey.entity.Message;
import org.maxkey.entity.SocialsProvider;
import org.maxkey.entity.UserInfo;
import org.maxkey.persistence.service.SocialsProviderService;
import org.maxkey.web.WebContext;
import org.maxkey.web.message.Message;
import org.maxkey.web.message.MessageType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping(value={"/socialsprovider"})
@RequestMapping(value={"/config/socialsprovider"})
public class SocialsProviderController {
final static Logger _logger = LoggerFactory.getLogger(SocialsProviderController.class);
@Autowired
SocialsProviderService socialsProviderService;
@RequestMapping(value={"/list"})
public ModelAndView noticesList(){
return new ModelAndView("socialsprovider/socialsProviderList");
}
@RequestMapping(value = { "/grid" })
@RequestMapping(value = { "/fetch" }, produces = {MediaType.APPLICATION_JSON_VALUE})
@ResponseBody
public JpaPageResults<SocialsProvider> queryDataGrid(@ModelAttribute("socialsProvider") SocialsProvider socialsProvider) {
public ResponseEntity<?> fetch(@ModelAttribute SocialsProvider socialsProvider,@CurrentUser UserInfo currentUser) {
_logger.debug(""+socialsProvider);
socialsProvider.setInstId(WebContext.getUserInfo().getInstId());
return socialsProviderService.queryPageResults(socialsProvider);
socialsProvider.setInstId(currentUser.getInstId());
return new Message<JpaPageResults<SocialsProvider>>(
socialsProviderService.queryPageResults(socialsProvider)).buildResponse();
}
@RequestMapping(value = { "/forwardAdd" })
public ModelAndView forwardAdd() {
return new ModelAndView("socialsprovider/socialsProviderAdd");
@ResponseBody
@RequestMapping(value={"/query"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> query(@ModelAttribute SocialsProvider socialsProvider,@CurrentUser UserInfo currentUser) {
_logger.debug("-query :" + socialsProvider);
socialsProvider.setInstId(currentUser.getInstId());
if (socialsProviderService.load(socialsProvider)!=null) {
return new Message<SocialsProvider>(Message.SUCCESS).buildResponse();
} else {
return new Message<SocialsProvider>(Message.SUCCESS).buildResponse();
}
}
@RequestMapping(value = { "/forwardUpdate/{id}" })
public ModelAndView forwardUpdate(@PathVariable("id") String id) {
ModelAndView modelAndView=new ModelAndView("socialsprovider/socialsProviderUpdate");
SocialsProvider socialsProvider = socialsProviderService.get(id);
@RequestMapping(value = { "/get/{id}" }, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> get(@PathVariable("id") String id) {
SocialsProvider socialsProvider=socialsProviderService.get(id);
socialsProvider.setClientSecret(PasswordReciprocal.getInstance().decoder(socialsProvider.getClientSecret()));
modelAndView.addObject("model",socialsProvider);
return modelAndView;
return new Message<SocialsProvider>(socialsProvider).buildResponse();
}
@ResponseBody
@RequestMapping(value={"/add"})
public Message insert(@ModelAttribute("socialsProvider") SocialsProvider socialsProvider) {
@RequestMapping(value={"/add"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> insert(@RequestBody SocialsProvider socialsProvider,@CurrentUser UserInfo currentUser) {
_logger.debug("-Add :" + socialsProvider);
socialsProvider.setInstId(WebContext.getUserInfo().getInstId());
socialsProvider.setInstId(currentUser.getInstId());
socialsProvider.setClientSecret(PasswordReciprocal.getInstance().encode(socialsProvider.getClientSecret()));
if (socialsProviderService.insert(socialsProvider)) {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.INSERT_SUCCESS),MessageType.success);
return new Message<SocialsProvider>(Message.SUCCESS).buildResponse();
} else {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.INSERT_SUCCESS),MessageType.error);
return new Message<SocialsProvider>(Message.FAIL).buildResponse();
}
}
/**
* 查询
* @param role
* @return
*/
@ResponseBody
@RequestMapping(value={"/query"})
public Message query(@ModelAttribute("socialsProvider") SocialsProvider socialsProvider) {
_logger.debug("-query :" + socialsProvider);
socialsProvider.setInstId(WebContext.getUserInfo().getInstId());
if (socialsProviderService.load(socialsProvider)!=null) {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.INSERT_SUCCESS),MessageType.success);
} else {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.INSERT_ERROR),MessageType.error);
}
}
/**
* 修改
* @param role
* @return
*/
@ResponseBody
@RequestMapping(value={"/update"})
public Message update(@ModelAttribute("socialsProvider") SocialsProvider socialsProvider) {
_logger.debug("-update socialsProvider :" + socialsProvider);
socialsProvider.setInstId(WebContext.getUserInfo().getInstId());
@RequestMapping(value={"/update"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> update(@RequestBody SocialsProvider socialsProvider,@CurrentUser UserInfo currentUser) {
_logger.debug("-update :" + socialsProvider);
socialsProvider.setInstId(currentUser.getInstId());
socialsProvider.setClientSecret(PasswordReciprocal.getInstance().encode(socialsProvider.getClientSecret()));
if (socialsProviderService.update(socialsProvider)) {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.UPDATE_SUCCESS),MessageType.success);
return new Message<SocialsProvider>(Message.SUCCESS).buildResponse();
} else {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.UPDATE_ERROR),MessageType.error);
return new Message<SocialsProvider>(Message.FAIL).buildResponse();
}
}
@ResponseBody
@RequestMapping(value={"/delete"})
public Message delete(@ModelAttribute("socialsProvider") SocialsProvider socialsProvider) {
_logger.debug("-delete socialsProvider :" + socialsProvider);
if (socialsProviderService.deleteBatch(socialsProvider.getId())) {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.DELETE_SUCCESS),MessageType.success);
@RequestMapping(value={"/delete"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> delete(@RequestParam("ids") String ids,@CurrentUser UserInfo currentUser) {
_logger.debug("-delete ids : {} " , ids);
if (socialsProviderService.deleteBatch(ids)) {
return new Message<SocialsProvider>(Message.SUCCESS).buildResponse();
} else {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.DELETE_SUCCESS),MessageType.error);
return new Message<SocialsProvider>(Message.FAIL).buildResponse();
}
}
}
......@@ -15,100 +15,73 @@
*/
package org.maxkey.web.contorller;
package org.maxkey.web.config.contorller;
import java.util.List;
import org.apache.mybatis.jpa.persistence.JpaPageResults;
import org.maxkey.constants.ConstsOperateMessage;
import org.maxkey.authn.annotation.CurrentUser;
import org.maxkey.crypto.password.PasswordReciprocal;
import org.maxkey.entity.Message;
import org.maxkey.entity.Synchronizers;
import org.maxkey.entity.UserInfo;
import org.maxkey.persistence.service.SynchronizersService;
import org.maxkey.synchronizer.ISynchronizerService;
import org.maxkey.util.StringUtils;
import org.maxkey.web.WebContext;
import org.maxkey.web.message.Message;
import org.maxkey.web.message.MessageType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping(value={"/synchronizers"})
@RequestMapping(value={"/config/synchronizers"})
public class SynchronizersController {
final static Logger _logger = LoggerFactory.getLogger(SynchronizersController.class);
@Autowired
@Qualifier("synchronizersService")
SynchronizersService synchronizersService;
@RequestMapping(value={"/list"})
public ModelAndView groupsList(){
return new ModelAndView("synchronizers/synchronizersList");
}
@RequestMapping(value = { "/grid" })
@RequestMapping(value = { "/fetch" }, produces = {MediaType.APPLICATION_JSON_VALUE})
@ResponseBody
public JpaPageResults<Synchronizers> queryDataGrid(@ModelAttribute("synchronizers") Synchronizers synchronizers) {
public ResponseEntity<?> fetch(Synchronizers synchronizers,@CurrentUser UserInfo currentUser) {
_logger.debug(""+synchronizers);
synchronizers.setInstId(WebContext.getUserInfo().getInstId());
return synchronizersService.queryPageResults(synchronizers);
synchronizers.setInstId(currentUser.getInstId());
return new Message<JpaPageResults<Synchronizers>>(
synchronizersService.queryPageResults(synchronizers)).buildResponse();
}
@RequestMapping(value = { "/forwardUpdate/{id}" })
public ModelAndView forwardUpdate(@PathVariable("id") String id) {
ModelAndView modelAndView=new ModelAndView("synchronizers/synchronizerUpdate");
@RequestMapping(value = { "/get/{id}" }, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> get(@PathVariable("id") String id) {
Synchronizers synchronizers=synchronizersService.get(id);
synchronizers.setCredentials(PasswordReciprocal.getInstance().decoder(synchronizers.getCredentials()));
modelAndView.addObject("model",synchronizers);
return modelAndView;
return new Message<Synchronizers>(synchronizers).buildResponse();
}
/**
* 修改
* @param group
* @return
*/
@ResponseBody
@RequestMapping(value={"/update"})
public Message update(@ModelAttribute("synchronizers") Synchronizers synchronizers) {
_logger.debug("-update synchronizers :" + synchronizers);
synchronizers.setInstId(WebContext.getUserInfo().getInstId());
@RequestMapping(value={"/update"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> update(@RequestBody Synchronizers synchronizers,@CurrentUser UserInfo currentUser) {
_logger.debug("-update :" + synchronizers);
synchronizers.setInstId(currentUser.getInstId());
synchronizers.setCredentials(PasswordReciprocal.getInstance().encode(synchronizers.getCredentials()));
if (synchronizersService.update(synchronizers)) {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.UPDATE_SUCCESS),MessageType.success);
return new Message<Synchronizers>(Message.SUCCESS).buildResponse();
} else {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.UPDATE_ERROR),MessageType.error);
return new Message<Synchronizers>(Message.FAIL).buildResponse();
}
}
/**
* 修改
* @param group
* @return
*/
@ResponseBody
@RequestMapping(value={"/sync"})
public Message sync(@RequestParam("id") String id) {
_logger.debug("-update synchronizers ids :" + id);
public ResponseEntity<?> sync(@RequestParam("id") String id) {
_logger.debug("-sync ids :" + id);
List<String> ids = StringUtils.string2List(id, ",");
try {
......@@ -122,9 +95,10 @@ public class SynchronizersController {
}
}catch(Exception e) {
_logger.error("synchronizer Exception " , e);
return new Message(WebContext.getI18nValue(ConstsOperateMessage.UPDATE_ERROR),MessageType.error);
return new Message<Synchronizers>(Message.FAIL).buildResponse();
}
return new Message(WebContext.getI18nValue(ConstsOperateMessage.UPDATE_SUCCESS),MessageType.success);
return new Message<Synchronizers>(Message.SUCCESS).buildResponse();
}
}
package org.maxkey.web.config.contorller;
\ No newline at end of file
......@@ -15,11 +15,11 @@
*/
package org.maxkey.web.endpoint;
package org.maxkey.web.contorller;
import java.util.HashMap;
import org.maxkey.authn.CurrentUser;
import org.maxkey.authn.annotation.CurrentUser;
import org.maxkey.entity.Message;
import org.maxkey.entity.UserInfo;
import org.maxkey.persistence.service.ReportService;
......@@ -37,9 +37,9 @@ import org.springframework.web.bind.annotation.RequestMapping;
*
*/
@Controller
public class IndexEndpoint {
public class DashboardController {
private static Logger _logger = LoggerFactory.getLogger(IndexEndpoint.class);
private static Logger _logger = LoggerFactory.getLogger(DashboardController.class);
@Autowired
@Qualifier("reportService")
ReportService reportService;
......
......@@ -15,7 +15,7 @@
*/
package org.maxkey.web.endpoint;
package org.maxkey.web.contorller;
import org.maxkey.authn.AbstractAuthenticationProvider;
import org.maxkey.authn.LoginCredential;
......
......@@ -15,7 +15,7 @@
*/
package org.maxkey.web.endpoint;
package org.maxkey.web.contorller;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
......
......@@ -20,7 +20,7 @@ package org.maxkey.web.historys.contorller;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.mybatis.jpa.persistence.JpaPageResults;
import org.maxkey.authn.CurrentUser;
import org.maxkey.authn.annotation.CurrentUser;
import org.maxkey.entity.HistoryConnector;
import org.maxkey.entity.Message;
import org.maxkey.entity.UserInfo;
......@@ -59,7 +59,7 @@ final static Logger _logger = LoggerFactory.getLogger(ConnectorHistoryController
* @param historySynchronizer
* @return
*/
@RequestMapping(value={"/connectorHistoryList/fetch"})
@RequestMapping(value={"/connectorHistory/fetch"})
@ResponseBody
public ResponseEntity<?> fetch(
@ModelAttribute("historyConnector") HistoryConnector historyConnector,
......
......@@ -20,7 +20,7 @@ package org.maxkey.web.historys.contorller;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.mybatis.jpa.persistence.JpaPageResults;
import org.maxkey.authn.CurrentUser;
import org.maxkey.authn.annotation.CurrentUser;
import org.maxkey.entity.HistoryLoginApps;
import org.maxkey.entity.Message;
import org.maxkey.entity.UserInfo;
......@@ -57,7 +57,7 @@ final static Logger _logger = LoggerFactory.getLogger(LoginAppsHistoryController
* @param loginAppsHistory
* @return
*/
@RequestMapping(value={"/loginAppsHistoryList/fetch"})
@RequestMapping(value={"/loginAppsHistory/fetch"})
@ResponseBody
public ResponseEntity<?> fetch(
@ModelAttribute("historyLoginApp") HistoryLoginApps historyLoginApp,
......
......@@ -20,7 +20,7 @@ package org.maxkey.web.historys.contorller;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.mybatis.jpa.persistence.JpaPageResults;
import org.maxkey.authn.CurrentUser;
import org.maxkey.authn.annotation.CurrentUser;
import org.maxkey.entity.HistoryLogin;
import org.maxkey.entity.Message;
import org.maxkey.entity.UserInfo;
......@@ -57,7 +57,7 @@ final static Logger _logger = LoggerFactory.getLogger(LoginHistoryController.cla
* @param HistoryLogin
* @return
*/
@RequestMapping(value={"/loginHistoryList/fetch"})
@RequestMapping(value={"/loginHistory/fetch"})
@ResponseBody
public ResponseEntity<?> fetch(
@ModelAttribute("historyLogin") HistoryLogin historyLogin,
......
......@@ -20,7 +20,7 @@ package org.maxkey.web.historys.contorller;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.mybatis.jpa.persistence.JpaPageResults;
import org.maxkey.authn.CurrentUser;
import org.maxkey.authn.annotation.CurrentUser;
import org.maxkey.entity.HistorySynchronizer;
import org.maxkey.entity.Message;
import org.maxkey.entity.UserInfo;
......@@ -59,7 +59,7 @@ final static Logger _logger = LoggerFactory.getLogger(SynchronizerHistoryControl
* @param historySynchronizer
* @return
*/
@RequestMapping(value={"/synchronizerHistoryList/fetch"})
@RequestMapping(value={"/synchronizerHistory/fetch"})
@ResponseBody
public ResponseEntity<?> fetch(
@ModelAttribute("historySynchronizer") HistorySynchronizer historySynchronizer,
......
......@@ -20,7 +20,7 @@ package org.maxkey.web.historys.contorller;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.mybatis.jpa.persistence.JpaPageResults;
import org.maxkey.authn.CurrentUser;
import org.maxkey.authn.annotation.CurrentUser;
import org.maxkey.entity.HistoryLogs;
import org.maxkey.entity.Message;
import org.maxkey.entity.UserInfo;
......@@ -58,7 +58,7 @@ final static Logger _logger = LoggerFactory.getLogger(SystemLogsController.class
* @param logs
* @return
*/
@RequestMapping(value={"/systemLogsList/fetch"})
@RequestMapping(value={"/systemLogs/fetch"})
@ResponseBody
public ResponseEntity<?> fetch(@ModelAttribute("historyLog") HistoryLogs historyLog,
@CurrentUser UserInfo currentUser){
......
......@@ -15,7 +15,7 @@
*/
package org.maxkey.web.contorller;
package org.maxkey.web.permissions.contorller;
import java.util.ArrayList;
import java.util.HashMap;
......
......@@ -15,7 +15,7 @@
*/
package org.maxkey.web.contorller;
package org.maxkey.web.permissions.contorller;
import java.util.HashMap;
import java.util.List;
......
......@@ -15,7 +15,7 @@
*/
package org.maxkey.web.contorller;
package org.maxkey.web.permissions.contorller;
import org.apache.mybatis.jpa.persistence.JpaPageResults;
import org.maxkey.constants.ConstsOperateMessage;
......
......@@ -15,136 +15,99 @@
*/
package org.maxkey.web.contorller;
package org.maxkey.web.permissions.contorller;
import org.apache.mybatis.jpa.persistence.JpaPageResults;
import org.maxkey.constants.ConstsOperateMessage;
import org.maxkey.authn.annotation.CurrentUser;
import org.maxkey.entity.Message;
import org.maxkey.entity.Roles;
import org.maxkey.entity.UserInfo;
import org.maxkey.persistence.service.RolesService;
import org.maxkey.web.WebContext;
import org.maxkey.web.message.Message;
import org.maxkey.web.message.MessageType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
@Controller
@RequestMapping(value={"/roles"})
@RequestMapping(value={"/permissions/roles"})
public class RolesController {
final static Logger _logger = LoggerFactory.getLogger(RolesController.class);
@Autowired
@Qualifier("rolesService")
RolesService rolesService;
@RequestMapping(value={"/list"})
public ModelAndView rolesList(){
return new ModelAndView("roles/rolesList");
}
@RequestMapping(value={"/selectRolesList"})
public ModelAndView selectRolesList(){
return new ModelAndView("roles/selectRolesList");
}
@RequestMapping(value = { "/grid" })
@RequestMapping(value = { "/fetch" }, produces = {MediaType.APPLICATION_JSON_VALUE})
@ResponseBody
public JpaPageResults<Roles> queryDataGrid(@ModelAttribute("roles") Roles roles) {
public ResponseEntity<?> fetch(@ModelAttribute Roles roles,@CurrentUser UserInfo currentUser) {
_logger.debug(""+roles);
roles.setInstId(WebContext.getUserInfo().getInstId());
return rolesService.queryPageResults(roles);
roles.setInstId(currentUser.getInstId());
return new Message<JpaPageResults<Roles>>(
rolesService.queryPageResults(roles)).buildResponse();
}
@RequestMapping(value = { "/forwardAdd" })
public ModelAndView forwardAdd() {
return new ModelAndView("roles/roleAdd");
@ResponseBody
@RequestMapping(value={"/query"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> query(@ModelAttribute Roles role,@CurrentUser UserInfo currentUser) {
_logger.debug("-query :" + role);
role.setInstId(currentUser.getInstId());
if (rolesService.load(role)!=null) {
return new Message<Roles>(Message.SUCCESS).buildResponse();
} else {
return new Message<Roles>(Message.SUCCESS).buildResponse();
}
}
@RequestMapping(value = { "/forwardUpdate/{id}" })
public ModelAndView forwardUpdate(@PathVariable("id") String id) {
ModelAndView modelAndView=new ModelAndView("roles/roleUpdate");
@RequestMapping(value = { "/get/{id}" }, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> get(@PathVariable("id") String id) {
Roles role=rolesService.get(id);
modelAndView.addObject("model",role);
return modelAndView;
return new Message<Roles>(role).buildResponse();
}
@ResponseBody
@RequestMapping(value={"/add"})
public Message insert(@ModelAttribute("role") Roles role) {
@RequestMapping(value={"/add"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> insert(@RequestBody Roles role,@CurrentUser UserInfo currentUser) {
_logger.debug("-Add :" + role);
role.setInstId(WebContext.getUserInfo().getInstId());
role.setInstId(currentUser.getInstId());
if (rolesService.insert(role)) {
rolesService.refreshDynamicRoles(role);
return new Message(WebContext.getI18nValue(ConstsOperateMessage.INSERT_SUCCESS),MessageType.success);
} else {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.INSERT_SUCCESS),MessageType.error);
}
}
/**
* 查询
* @param role
* @return
*/
@ResponseBody
@RequestMapping(value={"/query"})
public Message query(@ModelAttribute("role") Roles role) {
_logger.debug("-query :" + role);
role.setInstId(WebContext.getUserInfo().getInstId());
if (rolesService.load(role)!=null) {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.INSERT_SUCCESS),MessageType.success);
return new Message<Roles>(Message.SUCCESS).buildResponse();
} else {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.INSERT_ERROR),MessageType.error);
return new Message<Roles>(Message.FAIL).buildResponse();
}
}
/**
* 修改
* @param role
* @return
*/
@ResponseBody
@RequestMapping(value={"/update"})
public Message update(@ModelAttribute("role") Roles role) {
_logger.debug("-update role :" + role);
role.setInstId(WebContext.getUserInfo().getInstId());
@RequestMapping(value={"/update"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> update(@RequestBody Roles role,@CurrentUser UserInfo currentUser) {
_logger.debug("-update :" + role);
role.setInstId(currentUser.getInstId());
if (rolesService.update(role)) {
rolesService.refreshDynamicRoles(role);
return new Message(WebContext.getI18nValue(ConstsOperateMessage.UPDATE_SUCCESS),MessageType.success);
return new Message<Roles>(Message.SUCCESS).buildResponse();
} else {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.UPDATE_ERROR),MessageType.error);
return new Message<Roles>(Message.FAIL).buildResponse();
}
}
@ResponseBody
@RequestMapping(value={"/delete"})
public Message delete(@ModelAttribute("role") Roles role) {
_logger.debug("-delete role :" + role);
@RequestMapping(value={"/delete"}, produces = {MediaType.APPLICATION_JSON_VALUE})
public ResponseEntity<?> delete(@RequestParam("ids") String ids,@CurrentUser UserInfo currentUser) {
_logger.debug("-delete ids : {} " , ids);
if (rolesService.deleteById(role.getId())) {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.DELETE_SUCCESS),MessageType.success);
if (rolesService.deleteBatch(ids)) {
return new Message<Roles>(Message.SUCCESS).buildResponse();
} else {
return new Message(WebContext.getI18nValue(ConstsOperateMessage.DELETE_SUCCESS),MessageType.error);
return new Message<Roles>(Message.FAIL).buildResponse();
}
}
......
package org.maxkey.web.permissions.contorller;
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册