mirror of
https://gitee.com/dromara/MaxKey.git
synced 2025-12-07 17:38:32 +08:00
authn
This commit is contained in:
parent
476ebfdc55
commit
a2740e15de
@ -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;
|
||||
}
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
package org.maxkey.authn;
|
||||
package org.maxkey.authn.annotation;
|
||||
|
||||
import java.lang.annotation.Documented;
|
||||
import java.lang.annotation.Retention;
|
||||
@ -0,0 +1 @@
|
||||
package org.maxkey.authn.annotation;
|
||||
@ -1 +0,0 @@
|
||||
package org.maxkey.authn.interceptor;
|
||||
@ -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;
|
||||
|
||||
}
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
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;
|
||||
@ -0,0 +1 @@
|
||||
package org.maxkey.authn.web.interceptor;
|
||||
@ -0,0 +1 @@
|
||||
package org.maxkey.authn.web;
|
||||
@ -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);
|
||||
|
||||
@ -0,0 +1,115 @@
|
||||
/*
|
||||
* Copyright [2020] [MaxKey of copyright http://www.maxkey.top]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
package org.maxkey.web.access.contorller;
|
||||
|
||||
import org.apache.mybatis.jpa.persistence.JpaPageResults;
|
||||
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.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;
|
||||
|
||||
|
||||
@Controller
|
||||
@RequestMapping(value={"/access/groups"})
|
||||
public class GroupsController {
|
||||
final static Logger _logger = LoggerFactory.getLogger(GroupsController.class);
|
||||
|
||||
@Autowired
|
||||
GroupsService groupsService;
|
||||
|
||||
@RequestMapping(value = { "/fetch" }, produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
@ResponseBody
|
||||
public ResponseEntity<?> fetch(
|
||||
@ModelAttribute Groups groups,
|
||||
@CurrentUser UserInfo currentUser) {
|
||||
_logger.debug(""+groups);
|
||||
groups.setInstId(currentUser.getInstId());
|
||||
return new Message<JpaPageResults<Groups>>(
|
||||
groupsService.queryPageResults(groups)).buildResponse();
|
||||
}
|
||||
|
||||
@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 = { "/get/{id}" }, produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
public ResponseEntity<?> get(@PathVariable("id") String id,@CurrentUser UserInfo currentUser) {
|
||||
Groups group=groupsService.get(id);
|
||||
return new Message<Groups>(group).buildResponse();
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@RequestMapping(value={"/add"}, produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
public ResponseEntity<?> insert(@RequestBody Groups group,@CurrentUser UserInfo currentUser) {
|
||||
_logger.debug("-Add :" + group);
|
||||
group.setInstId(currentUser.getInstId());
|
||||
if (groupsService.insert(group)) {
|
||||
groupsService.refreshDynamicGroups(group);
|
||||
return new Message<Groups>(Message.SUCCESS).buildResponse();
|
||||
} else {
|
||||
return new Message<Groups>(Message.FAIL).buildResponse();
|
||||
}
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@RequestMapping(value={"/update"}, produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
public ResponseEntity<?> update(@RequestBody Groups group,@CurrentUser UserInfo currentUser) {
|
||||
_logger.debug("-update group :" + group);
|
||||
group.setInstId(currentUser.getInstId());
|
||||
if (groupsService.update(group)) {
|
||||
groupsService.refreshDynamicGroups(group);
|
||||
return new Message<Groups>(Message.SUCCESS).buildResponse();
|
||||
} else {
|
||||
return new Message<Groups>(Message.FAIL).buildResponse();
|
||||
}
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@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.deleteBatch(ids)) {
|
||||
return new Message<Groups>(Message.SUCCESS).buildResponse();
|
||||
} else {
|
||||
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);
|
||||
@ -0,0 +1 @@
|
||||
package org.maxkey.web.access.contorller;
|
||||
@ -1,150 +0,0 @@
|
||||
/*
|
||||
* Copyright [2020] [MaxKey of copyright http://www.maxkey.top]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
package org.maxkey.web.apps.contorller;
|
||||
|
||||
import org.apache.mybatis.jpa.persistence.JpaPageResults;
|
||||
import org.maxkey.constants.ConstsOperateMessage;
|
||||
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.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
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"})
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
@RequestMapping(value = { "/grid" })
|
||||
@ResponseBody
|
||||
public JpaPageResults<AppsAdapters> queryDataGrid(@ModelAttribute("appsAdapter") AppsAdapters appsAdapter) {
|
||||
_logger.debug(""+appsAdapter);
|
||||
return appsAdaptersService.queryPageResults(appsAdapter);
|
||||
}
|
||||
|
||||
|
||||
@RequestMapping(value = { "/forwardAdd" })
|
||||
public ModelAndView forwardAdd() {
|
||||
return new ModelAndView("apps/adapters/adapterAdd");
|
||||
}
|
||||
|
||||
@RequestMapping(value = { "/forwardUpdate/{id}" })
|
||||
public ModelAndView forwardUpdate(@PathVariable("id") String id) {
|
||||
ModelAndView modelAndView=new ModelAndView("apps/adapters/adapterUpdate");
|
||||
AppsAdapters appsAdapter=appsAdaptersService.get(id);
|
||||
modelAndView.addObject("model",appsAdapter);
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@RequestMapping(value={"/add"})
|
||||
public Message insert(@ModelAttribute("appsAdapter") AppsAdapters appsAdapter) {
|
||||
_logger.debug("-Add :" + appsAdapter);
|
||||
|
||||
if (appsAdaptersService.insert(appsAdapter)) {
|
||||
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("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);
|
||||
|
||||
if (appsAdaptersService.update(appsAdapter)) {
|
||||
return new Message(WebContext.getI18nValue(ConstsOperateMessage.UPDATE_SUCCESS),MessageType.success);
|
||||
|
||||
} else {
|
||||
return new Message(WebContext.getI18nValue(ConstsOperateMessage.UPDATE_ERROR),MessageType.error);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@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);
|
||||
|
||||
} else {
|
||||
return new Message(WebContext.getI18nValue(ConstsOperateMessage.DELETE_SUCCESS),MessageType.error);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
@ -0,0 +1,106 @@
|
||||
/*
|
||||
* Copyright [2020] [MaxKey of copyright http://www.maxkey.top]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
package org.maxkey.web.config.contorller;
|
||||
|
||||
import org.apache.mybatis.jpa.persistence.JpaPageResults;
|
||||
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.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;
|
||||
|
||||
|
||||
@Controller
|
||||
@RequestMapping(value={"/config/adapters"})
|
||||
public class AdaptersController {
|
||||
final static Logger _logger = LoggerFactory.getLogger(AdaptersController.class);
|
||||
|
||||
@Autowired
|
||||
AppsAdaptersService appsAdaptersService;
|
||||
|
||||
@RequestMapping(value = { "/fetch" }, produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
@ResponseBody
|
||||
public ResponseEntity<?> fetch(@ModelAttribute AppsAdapters appsAdapter) {
|
||||
_logger.debug(""+appsAdapter);
|
||||
return new Message<JpaPageResults<AppsAdapters>>(
|
||||
appsAdaptersService.queryPageResults(appsAdapter)).buildResponse();
|
||||
}
|
||||
|
||||
@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 = { "/get/{id}" }, produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
public ResponseEntity<?> get(@PathVariable("id") String id) {
|
||||
AppsAdapters appsAdapter=appsAdaptersService.get(id);
|
||||
return new Message<AppsAdapters>(appsAdapter).buildResponse();
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@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<AppsAdapters>(Message.SUCCESS).buildResponse();
|
||||
} else {
|
||||
return new Message<AppsAdapters>(Message.FAIL).buildResponse();
|
||||
}
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@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<AppsAdapters>(Message.SUCCESS).buildResponse();
|
||||
} else {
|
||||
return new Message<AppsAdapters>(Message.FAIL).buildResponse();
|
||||
}
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@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<AppsAdapters>(Message.FAIL).buildResponse();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,80 @@
|
||||
/*
|
||||
* Copyright [2022] [MaxKey of copyright http://www.maxkey.top]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
package org.maxkey.web.config.contorller;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.maxkey.authn.annotation.CurrentUser;
|
||||
import org.maxkey.crypto.password.PasswordReciprocal;
|
||||
import org.maxkey.entity.EmailSenders;
|
||||
import org.maxkey.entity.Message;
|
||||
import org.maxkey.entity.UserInfo;
|
||||
import org.maxkey.persistence.service.EmailSendersService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
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();
|
||||
}
|
||||
|
||||
@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 {
|
||||
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;
|
||||
@ -0,0 +1,74 @@
|
||||
/*
|
||||
* Copyright [2022] [MaxKey of copyright http://www.maxkey.top]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
package org.maxkey.web.config.contorller;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.maxkey.authn.annotation.CurrentUser;
|
||||
import org.maxkey.crypto.password.PasswordReciprocal;
|
||||
import org.maxkey.entity.LdapContext;
|
||||
import org.maxkey.entity.Message;
|
||||
import org.maxkey.entity.UserInfo;
|
||||
import org.maxkey.persistence.service.LdapContextService;
|
||||
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.validation.BindingResult;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
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();
|
||||
}
|
||||
|
||||
@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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
@ -0,0 +1,104 @@
|
||||
/*
|
||||
* Copyright [2020] [MaxKey of copyright http://www.maxkey.top]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
package org.maxkey.web.config.contorller;
|
||||
|
||||
import javax.validation.Valid;
|
||||
|
||||
import org.maxkey.authn.annotation.CurrentUser;
|
||||
import org.maxkey.entity.Message;
|
||||
import org.maxkey.entity.PasswordPolicy;
|
||||
import org.maxkey.entity.UserInfo;
|
||||
import org.maxkey.persistence.service.PasswordPolicyService;
|
||||
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.validation.BindingResult;
|
||||
import org.springframework.validation.FieldError;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
@Controller
|
||||
@RequestMapping(value={"/config/passwordpolicy"})
|
||||
public class PasswordPolicyController {
|
||||
final static Logger _logger = LoggerFactory.getLogger(PasswordPolicyController.class);
|
||||
|
||||
@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);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,74 @@
|
||||
/*
|
||||
* Copyright [2022] [MaxKey of copyright http://www.maxkey.top]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
package org.maxkey.web.config.contorller;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.maxkey.authn.annotation.CurrentUser;
|
||||
import org.maxkey.crypto.password.PasswordReciprocal;
|
||||
import org.maxkey.entity.Message;
|
||||
import org.maxkey.entity.SmsProvider;
|
||||
import org.maxkey.entity.UserInfo;
|
||||
import org.maxkey.persistence.service.SmsProviderService;
|
||||
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.validation.BindingResult;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
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;
|
||||
|
||||
@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={"/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();
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,115 @@
|
||||
/*
|
||||
* Copyright [2021] [MaxKey of copyright http://www.maxkey.top]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
package org.maxkey.web.config.contorller;
|
||||
|
||||
import org.apache.mybatis.jpa.persistence.JpaPageResults;
|
||||
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.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;
|
||||
|
||||
|
||||
@Controller
|
||||
@RequestMapping(value={"/config/socialsprovider"})
|
||||
public class SocialsProviderController {
|
||||
final static Logger _logger = LoggerFactory.getLogger(SocialsProviderController.class);
|
||||
|
||||
@Autowired
|
||||
SocialsProviderService socialsProviderService;
|
||||
|
||||
@RequestMapping(value = { "/fetch" }, produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
@ResponseBody
|
||||
public ResponseEntity<?> fetch(@ModelAttribute SocialsProvider socialsProvider,@CurrentUser UserInfo currentUser) {
|
||||
_logger.debug(""+socialsProvider);
|
||||
socialsProvider.setInstId(currentUser.getInstId());
|
||||
return new Message<JpaPageResults<SocialsProvider>>(
|
||||
socialsProviderService.queryPageResults(socialsProvider)).buildResponse();
|
||||
}
|
||||
|
||||
@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 = { "/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()));
|
||||
return new Message<SocialsProvider>(socialsProvider).buildResponse();
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@RequestMapping(value={"/add"}, produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
public ResponseEntity<?> insert(@RequestBody SocialsProvider socialsProvider,@CurrentUser UserInfo currentUser) {
|
||||
_logger.debug("-Add :" + socialsProvider);
|
||||
socialsProvider.setInstId(currentUser.getInstId());
|
||||
socialsProvider.setClientSecret(PasswordReciprocal.getInstance().encode(socialsProvider.getClientSecret()));
|
||||
if (socialsProviderService.insert(socialsProvider)) {
|
||||
return new Message<SocialsProvider>(Message.SUCCESS).buildResponse();
|
||||
} else {
|
||||
return new Message<SocialsProvider>(Message.FAIL).buildResponse();
|
||||
}
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@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<SocialsProvider>(Message.SUCCESS).buildResponse();
|
||||
} else {
|
||||
return new Message<SocialsProvider>(Message.FAIL).buildResponse();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ResponseBody
|
||||
@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<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();
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
package org.maxkey.web.config.contorller;
|
||||
@ -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;
|
||||
@ -1,93 +0,0 @@
|
||||
/*
|
||||
* Copyright [2022] [MaxKey of copyright http://www.maxkey.top]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
package org.maxkey.web.contorller;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.maxkey.authn.CurrentUser;
|
||||
import org.maxkey.crypto.password.PasswordReciprocal;
|
||||
import org.maxkey.entity.EmailSenders;
|
||||
import org.maxkey.entity.Message;
|
||||
import org.maxkey.entity.UserInfo;
|
||||
import org.maxkey.persistence.service.EmailSendersService;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.validation.BindingResult;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
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;
|
||||
|
||||
/**
|
||||
* 读取
|
||||
* @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()));
|
||||
}else {
|
||||
emailSenders =new EmailSenders();
|
||||
emailSenders.setProtocol("smtp");
|
||||
emailSenders.setEncoding("utf-8");
|
||||
}
|
||||
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 {
|
||||
return new Message<EmailSenders>(Message.ERROR).buildResponse();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -1,151 +0,0 @@
|
||||
/*
|
||||
* Copyright [2020] [MaxKey of copyright http://www.maxkey.top]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
package org.maxkey.web.contorller;
|
||||
|
||||
import org.apache.mybatis.jpa.persistence.JpaPageResults;
|
||||
import org.maxkey.constants.ConstsOperateMessage;
|
||||
import org.maxkey.entity.Groups;
|
||||
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.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
|
||||
@Controller
|
||||
@RequestMapping(value={"/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" })
|
||||
@ResponseBody
|
||||
public JpaPageResults<Groups> queryDataGrid(@ModelAttribute("groups") Groups groups) {
|
||||
_logger.debug(""+groups);
|
||||
groups.setInstId(WebContext.getUserInfo().getInstId());
|
||||
return groupsService.queryPageResults(groups);
|
||||
}
|
||||
|
||||
|
||||
@RequestMapping(value = { "/forwardAdd" })
|
||||
public ModelAndView forwardAdd() {
|
||||
return new ModelAndView("groups/groupAdd");
|
||||
}
|
||||
|
||||
@RequestMapping(value = { "/forwardUpdate/{id}" })
|
||||
public ModelAndView forwardUpdate(@PathVariable("id") String id) {
|
||||
ModelAndView modelAndView=new ModelAndView("groups/groupUpdate");
|
||||
Groups group=groupsService.get(id);
|
||||
modelAndView.addObject("model",group);
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@RequestMapping(value={"/add"})
|
||||
public Message insert(@ModelAttribute("group") Groups group) {
|
||||
_logger.debug("-Add :" + group);
|
||||
group.setInstId(WebContext.getUserInfo().getInstId());
|
||||
if (groupsService.insert(group)) {
|
||||
groupsService.refreshDynamicGroups(group);
|
||||
return new Message(WebContext.getI18nValue(ConstsOperateMessage.INSERT_SUCCESS),MessageType.success);
|
||||
|
||||
} else {
|
||||
return new Message(WebContext.getI18nValue(ConstsOperateMessage.INSERT_SUCCESS),MessageType.error);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询
|
||||
* @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) {
|
||||
_logger.debug("-update group :" + group);
|
||||
group.setInstId(WebContext.getUserInfo().getInstId());
|
||||
if (groupsService.update(group)) {
|
||||
groupsService.refreshDynamicGroups(group);
|
||||
return new Message(WebContext.getI18nValue(ConstsOperateMessage.UPDATE_SUCCESS),MessageType.success);
|
||||
|
||||
} else {
|
||||
return new Message(WebContext.getI18nValue(ConstsOperateMessage.UPDATE_ERROR),MessageType.error);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ResponseBody
|
||||
@RequestMapping(value={"/delete"})
|
||||
public Message delete(@ModelAttribute("group") Groups group) {
|
||||
_logger.debug("-delete group :" + group);
|
||||
|
||||
if (groupsService.deleteById(group.getId())) {
|
||||
return new Message(WebContext.getI18nValue(ConstsOperateMessage.DELETE_SUCCESS),MessageType.success);
|
||||
|
||||
} else {
|
||||
return new Message(WebContext.getI18nValue(ConstsOperateMessage.DELETE_SUCCESS),MessageType.error);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -1,87 +0,0 @@
|
||||
/*
|
||||
* Copyright [2022] [MaxKey of copyright http://www.maxkey.top]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
package org.maxkey.web.contorller;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.maxkey.authn.CurrentUser;
|
||||
import org.maxkey.crypto.password.PasswordReciprocal;
|
||||
import org.maxkey.entity.LdapContext;
|
||||
import org.maxkey.entity.Message;
|
||||
import org.maxkey.entity.UserInfo;
|
||||
import org.maxkey.persistence.service.LdapContextService;
|
||||
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.validation.BindingResult;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
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;
|
||||
|
||||
/**
|
||||
* 读取
|
||||
* @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();
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新
|
||||
* @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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -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;
|
||||
@ -1,121 +0,0 @@
|
||||
/*
|
||||
* Copyright [2020] [MaxKey of copyright http://www.maxkey.top]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
package org.maxkey.web.contorller;
|
||||
|
||||
import javax.validation.Valid;
|
||||
|
||||
import org.maxkey.authn.CurrentUser;
|
||||
import org.maxkey.entity.Message;
|
||||
import org.maxkey.entity.PasswordPolicy;
|
||||
import org.maxkey.entity.UserInfo;
|
||||
import org.maxkey.persistence.service.PasswordPolicyService;
|
||||
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.validation.BindingResult;
|
||||
import org.springframework.validation.FieldError;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
@Controller
|
||||
@RequestMapping(value={"/config/passwordpolicy"})
|
||||
public class PasswordPolicyController {
|
||||
|
||||
|
||||
final static Logger _logger = LoggerFactory.getLogger(PasswordPolicyController.class);
|
||||
|
||||
@Autowired
|
||||
private PasswordPolicyService passwordPolicyService;
|
||||
|
||||
/**
|
||||
* 读取
|
||||
* @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();
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新
|
||||
* @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();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 验证函数
|
||||
* @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;
|
||||
}
|
||||
}
|
||||
@ -1,151 +0,0 @@
|
||||
/*
|
||||
* Copyright [2020] [MaxKey of copyright http://www.maxkey.top]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
package org.maxkey.web.contorller;
|
||||
|
||||
import org.apache.mybatis.jpa.persistence.JpaPageResults;
|
||||
import org.maxkey.constants.ConstsOperateMessage;
|
||||
import org.maxkey.entity.Roles;
|
||||
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.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
|
||||
@Controller
|
||||
@RequestMapping(value={"/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" })
|
||||
@ResponseBody
|
||||
public JpaPageResults<Roles> queryDataGrid(@ModelAttribute("roles") Roles roles) {
|
||||
_logger.debug(""+roles);
|
||||
roles.setInstId(WebContext.getUserInfo().getInstId());
|
||||
return rolesService.queryPageResults(roles);
|
||||
}
|
||||
|
||||
|
||||
@RequestMapping(value = { "/forwardAdd" })
|
||||
public ModelAndView forwardAdd() {
|
||||
return new ModelAndView("roles/roleAdd");
|
||||
}
|
||||
|
||||
@RequestMapping(value = { "/forwardUpdate/{id}" })
|
||||
public ModelAndView forwardUpdate(@PathVariable("id") String id) {
|
||||
ModelAndView modelAndView=new ModelAndView("roles/roleUpdate");
|
||||
Roles role=rolesService.get(id);
|
||||
modelAndView.addObject("model",role);
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@RequestMapping(value={"/add"})
|
||||
public Message insert(@ModelAttribute("role") Roles role) {
|
||||
_logger.debug("-Add :" + role);
|
||||
role.setInstId(WebContext.getUserInfo().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);
|
||||
|
||||
} else {
|
||||
return new Message(WebContext.getI18nValue(ConstsOperateMessage.INSERT_ERROR),MessageType.error);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改
|
||||
* @param role
|
||||
* @return
|
||||
*/
|
||||
@ResponseBody
|
||||
@RequestMapping(value={"/update"})
|
||||
public Message update(@ModelAttribute("role") Roles role) {
|
||||
_logger.debug("-update role :" + role);
|
||||
role.setInstId(WebContext.getUserInfo().getInstId());
|
||||
if (rolesService.update(role)) {
|
||||
rolesService.refreshDynamicRoles(role);
|
||||
return new Message(WebContext.getI18nValue(ConstsOperateMessage.UPDATE_SUCCESS),MessageType.success);
|
||||
|
||||
} else {
|
||||
return new Message(WebContext.getI18nValue(ConstsOperateMessage.UPDATE_ERROR),MessageType.error);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ResponseBody
|
||||
@RequestMapping(value={"/delete"})
|
||||
public Message delete(@ModelAttribute("role") Roles role) {
|
||||
_logger.debug("-delete role :" + role);
|
||||
|
||||
if (rolesService.deleteById(role.getId())) {
|
||||
return new Message(WebContext.getI18nValue(ConstsOperateMessage.DELETE_SUCCESS),MessageType.success);
|
||||
|
||||
} else {
|
||||
return new Message(WebContext.getI18nValue(ConstsOperateMessage.DELETE_SUCCESS),MessageType.error);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -1,86 +0,0 @@
|
||||
/*
|
||||
* Copyright [2022] [MaxKey of copyright http://www.maxkey.top]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
package org.maxkey.web.contorller;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.maxkey.authn.CurrentUser;
|
||||
import org.maxkey.crypto.password.PasswordReciprocal;
|
||||
import org.maxkey.entity.Message;
|
||||
import org.maxkey.entity.SmsProvider;
|
||||
import org.maxkey.entity.UserInfo;
|
||||
import org.maxkey.persistence.service.SmsProviderService;
|
||||
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.validation.BindingResult;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
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;
|
||||
|
||||
/**
|
||||
* 读取
|
||||
* @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();
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新
|
||||
* @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();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -1,144 +0,0 @@
|
||||
/*
|
||||
* Copyright [2021] [MaxKey of copyright http://www.maxkey.top]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
package org.maxkey.web.contorller;
|
||||
|
||||
import org.apache.mybatis.jpa.persistence.JpaPageResults;
|
||||
import org.maxkey.constants.ConstsOperateMessage;
|
||||
import org.maxkey.crypto.password.PasswordReciprocal;
|
||||
import org.maxkey.entity.SocialsProvider;
|
||||
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.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
import org.springframework.web.bind.annotation.PathVariable;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
|
||||
@Controller
|
||||
@RequestMapping(value={"/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" })
|
||||
@ResponseBody
|
||||
public JpaPageResults<SocialsProvider> queryDataGrid(@ModelAttribute("socialsProvider") SocialsProvider socialsProvider) {
|
||||
_logger.debug(""+socialsProvider);
|
||||
socialsProvider.setInstId(WebContext.getUserInfo().getInstId());
|
||||
return socialsProviderService.queryPageResults(socialsProvider);
|
||||
}
|
||||
|
||||
|
||||
@RequestMapping(value = { "/forwardAdd" })
|
||||
public ModelAndView forwardAdd() {
|
||||
return new ModelAndView("socialsprovider/socialsProviderAdd");
|
||||
}
|
||||
|
||||
@RequestMapping(value = { "/forwardUpdate/{id}" })
|
||||
public ModelAndView forwardUpdate(@PathVariable("id") String id) {
|
||||
ModelAndView modelAndView=new ModelAndView("socialsprovider/socialsProviderUpdate");
|
||||
SocialsProvider socialsProvider = socialsProviderService.get(id);
|
||||
socialsProvider.setClientSecret(PasswordReciprocal.getInstance().decoder(socialsProvider.getClientSecret()));
|
||||
modelAndView.addObject("model",socialsProvider);
|
||||
return modelAndView;
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@RequestMapping(value={"/add"})
|
||||
public Message insert(@ModelAttribute("socialsProvider") SocialsProvider socialsProvider) {
|
||||
_logger.debug("-Add :" + socialsProvider);
|
||||
socialsProvider.setInstId(WebContext.getUserInfo().getInstId());
|
||||
socialsProvider.setClientSecret(PasswordReciprocal.getInstance().encode(socialsProvider.getClientSecret()));
|
||||
if (socialsProviderService.insert(socialsProvider)) {
|
||||
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("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());
|
||||
socialsProvider.setClientSecret(PasswordReciprocal.getInstance().encode(socialsProvider.getClientSecret()));
|
||||
if (socialsProviderService.update(socialsProvider)) {
|
||||
return new Message(WebContext.getI18nValue(ConstsOperateMessage.UPDATE_SUCCESS),MessageType.success);
|
||||
|
||||
} else {
|
||||
return new Message(WebContext.getI18nValue(ConstsOperateMessage.UPDATE_ERROR),MessageType.error);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@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);
|
||||
|
||||
} else {
|
||||
return new Message(WebContext.getI18nValue(ConstsOperateMessage.DELETE_SUCCESS),MessageType.error);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -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;
|
||||
@ -0,0 +1,114 @@
|
||||
/*
|
||||
* Copyright [2020] [MaxKey of copyright http://www.maxkey.top]
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
|
||||
package org.maxkey.web.permissions.contorller;
|
||||
|
||||
import org.apache.mybatis.jpa.persistence.JpaPageResults;
|
||||
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.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;
|
||||
|
||||
|
||||
@Controller
|
||||
@RequestMapping(value={"/permissions/roles"})
|
||||
public class RolesController {
|
||||
final static Logger _logger = LoggerFactory.getLogger(RolesController.class);
|
||||
|
||||
@Autowired
|
||||
RolesService rolesService;
|
||||
|
||||
@RequestMapping(value = { "/fetch" }, produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
@ResponseBody
|
||||
public ResponseEntity<?> fetch(@ModelAttribute Roles roles,@CurrentUser UserInfo currentUser) {
|
||||
_logger.debug(""+roles);
|
||||
roles.setInstId(currentUser.getInstId());
|
||||
return new Message<JpaPageResults<Roles>>(
|
||||
rolesService.queryPageResults(roles)).buildResponse();
|
||||
}
|
||||
|
||||
@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 = { "/get/{id}" }, produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
public ResponseEntity<?> get(@PathVariable("id") String id) {
|
||||
Roles role=rolesService.get(id);
|
||||
return new Message<Roles>(role).buildResponse();
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@RequestMapping(value={"/add"}, produces = {MediaType.APPLICATION_JSON_VALUE})
|
||||
public ResponseEntity<?> insert(@RequestBody Roles role,@CurrentUser UserInfo currentUser) {
|
||||
_logger.debug("-Add :" + role);
|
||||
role.setInstId(currentUser.getInstId());
|
||||
if (rolesService.insert(role)) {
|
||||
rolesService.refreshDynamicRoles(role);
|
||||
return new Message<Roles>(Message.SUCCESS).buildResponse();
|
||||
} else {
|
||||
return new Message<Roles>(Message.FAIL).buildResponse();
|
||||
}
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@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<Roles>(Message.SUCCESS).buildResponse();
|
||||
} else {
|
||||
return new Message<Roles>(Message.FAIL).buildResponse();
|
||||
}
|
||||
}
|
||||
|
||||
@ResponseBody
|
||||
@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.deleteBatch(ids)) {
|
||||
return new Message<Roles>(Message.SUCCESS).buildResponse();
|
||||
} else {
|
||||
return new Message<Roles>(Message.FAIL).buildResponse();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@ -0,0 +1 @@
|
||||
package org.maxkey.web.permissions.contorller;
|
||||
Loading…
x
Reference in New Issue
Block a user