This commit is contained in:
alvis 2021-01-11 09:18:05 +08:00
parent a1cac655ce
commit cf0b0dc077
10 changed files with 196 additions and 20 deletions

View File

@ -1,15 +1,29 @@
package com.mindskip.xzs.base; package com.mindskip.xzs.base;
import lombok.Data;
/** /**
* @author 武汉思维跳跃科技有限公司 * @author 武汉思维跳跃科技有限公司
*/ */
@Data
public class BasePage { public class BasePage {
private Integer pageIndex; private Integer pageIndex;
private Integer pageSize; private Integer pageSize;
public Integer getPageIndex() {
return pageIndex;
}
public void setPageIndex(Integer pageIndex) {
this.pageIndex = pageIndex;
}
public Integer getPageSize() {
return pageSize;
}
public void setPageSize(Integer pageSize) {
this.pageSize = pageSize;
}
} }

View File

@ -1,9 +1,25 @@
package com.mindskip.xzs.configuration.property; package com.mindskip.xzs.configuration.property;
import lombok.Data;
@Data
public class PasswordKeyConfig { public class PasswordKeyConfig {
private String publicKey; private String publicKey;
private String privateKey; private String privateKey;
public String getPublicKey() {
return publicKey;
}
public void setPublicKey(String publicKey) {
this.publicKey = publicKey;
}
public String getPrivateKey() {
return privateKey;
}
public void setPrivateKey(String privateKey) {
this.privateKey = privateKey;
}
} }

View File

@ -1,14 +1,46 @@
package com.mindskip.xzs.configuration.property; package com.mindskip.xzs.configuration.property;
import lombok.Data;
import java.time.Duration; import java.time.Duration;
import java.util.List; import java.util.List;
@Data
public class QnConfig { public class QnConfig {
private String url; private String url;
private String bucket; private String bucket;
private String accessKey; private String accessKey;
private String secretKey; private String secretKey;
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getBucket() {
return bucket;
}
public void setBucket(String bucket) {
this.bucket = bucket;
}
public String getAccessKey() {
return accessKey;
}
public void setAccessKey(String accessKey) {
this.accessKey = accessKey;
}
public String getSecretKey() {
return secretKey;
}
public void setSecretKey(String secretKey) {
this.secretKey = secretKey;
}
} }

View File

@ -1,6 +1,5 @@
package com.mindskip.xzs.configuration.property; package com.mindskip.xzs.configuration.property;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.context.properties.ConfigurationProperties;
import java.util.List; import java.util.List;
@ -10,10 +9,43 @@ import java.util.List;
* @author 武汉思维跳跃科技有限公司 * @author 武汉思维跳跃科技有限公司
*/ */
@ConfigurationProperties(prefix = "system") @ConfigurationProperties(prefix = "system")
@Data
public class SystemConfig { public class SystemConfig {
private PasswordKeyConfig pwdKey; private PasswordKeyConfig pwdKey;
private List<String> securityIgnoreUrls; private List<String> securityIgnoreUrls;
private WxConfig wx; private WxConfig wx;
private QnConfig qn; private QnConfig qn;
public PasswordKeyConfig getPwdKey() {
return pwdKey;
}
public void setPwdKey(PasswordKeyConfig pwdKey) {
this.pwdKey = pwdKey;
}
public List<String> getSecurityIgnoreUrls() {
return securityIgnoreUrls;
}
public void setSecurityIgnoreUrls(List<String> securityIgnoreUrls) {
this.securityIgnoreUrls = securityIgnoreUrls;
}
public WxConfig getWx() {
return wx;
}
public void setWx(WxConfig wx) {
this.wx = wx;
}
public QnConfig getQn() {
return qn;
}
public void setQn(QnConfig qn) {
this.qn = qn;
}
} }

View File

@ -1,14 +1,47 @@
package com.mindskip.xzs.configuration.property; package com.mindskip.xzs.configuration.property;
import lombok.Data;
import java.time.Duration; import java.time.Duration;
import java.util.List; import java.util.List;
@Data
public class WxConfig { public class WxConfig {
private String appid; private String appid;
private String secret; private String secret;
private Duration tokenToLive; private Duration tokenToLive;
private List<String> securityIgnoreUrls; private List<String> securityIgnoreUrls;
public String getAppid() {
return appid;
}
public void setAppid(String appid) {
this.appid = appid;
}
public String getSecret() {
return secret;
}
public void setSecret(String secret) {
this.secret = secret;
}
public Duration getTokenToLive() {
return tokenToLive;
}
public void setTokenToLive(Duration tokenToLive) {
this.tokenToLive = tokenToLive;
}
public List<String> getSecurityIgnoreUrls() {
return securityIgnoreUrls;
}
public void setSecurityIgnoreUrls(List<String> securityIgnoreUrls) {
this.securityIgnoreUrls = securityIgnoreUrls;
}
} }

View File

@ -2,7 +2,7 @@ package com.mindskip.xzs.configuration.spring.mvc;
import com.mindskip.xzs.configuration.property.SystemConfig; import com.mindskip.xzs.configuration.property.SystemConfig;
import com.mindskip.xzs.configuration.spring.wx.TokenHandlerInterceptor; import com.mindskip.xzs.configuration.spring.wx.TokenHandlerInterceptor;
import lombok.AllArgsConstructor; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.*; import org.springframework.web.servlet.config.annotation.*;
@ -14,12 +14,17 @@ import java.util.List;
*/ */
@Configuration @Configuration
@AllArgsConstructor
public class WebMvcConfiguration extends WebMvcConfigurationSupport { public class WebMvcConfiguration extends WebMvcConfigurationSupport {
private final TokenHandlerInterceptor tokenHandlerInterceptor; private final TokenHandlerInterceptor tokenHandlerInterceptor;
private final SystemConfig systemConfig; private final SystemConfig systemConfig;
@Autowired
public WebMvcConfiguration(TokenHandlerInterceptor tokenHandlerInterceptor, SystemConfig systemConfig) {
this.tokenHandlerInterceptor = tokenHandlerInterceptor;
this.systemConfig = systemConfig;
}
@Override @Override
public void addViewControllers(ViewControllerRegistry registry) { public void addViewControllers(ViewControllerRegistry registry) {
registry.addRedirectViewController("/", "/student/index.html"); registry.addRedirectViewController("/", "/student/index.html");

View File

@ -1,14 +1,37 @@
package com.mindskip.xzs.configuration.spring.security; package com.mindskip.xzs.configuration.spring.security;
import lombok.Data;
/** /**
* @author 武汉思维跳跃科技有限公司 * @author 武汉思维跳跃科技有限公司
*/ */
@Data
public class AuthenticationBean { public class AuthenticationBean {
private String userName; private String userName;
private String password; private String password;
private boolean remember; private boolean remember;
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public boolean isRemember() {
return remember;
}
public void setRemember(boolean remember) {
this.remember = remember;
}
} }

View File

@ -4,7 +4,7 @@ import com.mindskip.xzs.base.SystemCode;
import com.mindskip.xzs.domain.UserEventLog; import com.mindskip.xzs.domain.UserEventLog;
import com.mindskip.xzs.event.UserEvent; import com.mindskip.xzs.event.UserEvent;
import com.mindskip.xzs.service.UserService; import com.mindskip.xzs.service.UserService;
import lombok.AllArgsConstructor; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisher;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.User;
@ -23,12 +23,17 @@ import java.util.Date;
* @author 武汉思维跳跃科技有限公司 * @author 武汉思维跳跃科技有限公司
*/ */
@Component @Component
@AllArgsConstructor
public class RestAuthenticationSuccessHandler extends SimpleUrlAuthenticationSuccessHandler { public class RestAuthenticationSuccessHandler extends SimpleUrlAuthenticationSuccessHandler {
private final ApplicationEventPublisher eventPublisher; private final ApplicationEventPublisher eventPublisher;
private final UserService userService; private final UserService userService;
@Autowired
public RestAuthenticationSuccessHandler(ApplicationEventPublisher eventPublisher, UserService userService) {
this.eventPublisher = eventPublisher;
this.userService = userService;
}
@Override @Override
public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {
User springUser = (User) authentication.getPrincipal(); User springUser = (User) authentication.getPrincipal();

View File

@ -5,7 +5,7 @@ import com.mindskip.xzs.domain.User;
import com.mindskip.xzs.domain.UserEventLog; import com.mindskip.xzs.domain.UserEventLog;
import com.mindskip.xzs.event.UserEvent; import com.mindskip.xzs.event.UserEvent;
import com.mindskip.xzs.service.UserService; import com.mindskip.xzs.service.UserService;
import lombok.AllArgsConstructor; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisher;
import org.springframework.security.core.Authentication; import org.springframework.security.core.Authentication;
import org.springframework.security.web.authentication.logout.SimpleUrlLogoutSuccessHandler; import org.springframework.security.web.authentication.logout.SimpleUrlLogoutSuccessHandler;
@ -21,12 +21,17 @@ import java.util.Date;
* @author 武汉思维跳跃科技有限公司 * @author 武汉思维跳跃科技有限公司
*/ */
@Component @Component
@AllArgsConstructor
public class RestLogoutSuccessHandler extends SimpleUrlLogoutSuccessHandler { public class RestLogoutSuccessHandler extends SimpleUrlLogoutSuccessHandler {
private final ApplicationEventPublisher eventPublisher; private final ApplicationEventPublisher eventPublisher;
private final UserService userService; private final UserService userService;
@Autowired
public RestLogoutSuccessHandler(ApplicationEventPublisher eventPublisher, UserService userService) {
this.eventPublisher = eventPublisher;
this.userService = userService;
}
@Override @Override
public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) { public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) {
org.springframework.security.core.userdetails.User springUser = (org.springframework.security.core.userdetails.User) authentication.getPrincipal(); org.springframework.security.core.userdetails.User springUser = (org.springframework.security.core.userdetails.User) authentication.getPrincipal();

View File

@ -3,7 +3,7 @@ package com.mindskip.xzs.configuration.spring.security;
import com.mindskip.xzs.configuration.property.CookieConfig; import com.mindskip.xzs.configuration.property.CookieConfig;
import com.mindskip.xzs.configuration.property.SystemConfig; import com.mindskip.xzs.configuration.property.SystemConfig;
import com.mindskip.xzs.domain.enums.RoleEnum; import com.mindskip.xzs.domain.enums.RoleEnum;
import lombok.AllArgsConstructor; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.builders.HttpSecurity;
@ -27,7 +27,6 @@ import java.util.List;
public class SecurityConfigurer { public class SecurityConfigurer {
@Configuration @Configuration
@AllArgsConstructor
public static class FormLoginWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter { public static class FormLoginWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter {
private final SystemConfig systemConfig; private final SystemConfig systemConfig;
@ -39,6 +38,18 @@ public class SecurityConfigurer {
private final RestLogoutSuccessHandler restLogoutSuccessHandler; private final RestLogoutSuccessHandler restLogoutSuccessHandler;
private final RestAccessDeniedHandler restAccessDeniedHandler; private final RestAccessDeniedHandler restAccessDeniedHandler;
@Autowired
public FormLoginWebSecurityConfigurerAdapter(SystemConfig systemConfig, LoginAuthenticationEntryPoint restAuthenticationEntryPoint, RestAuthenticationProvider restAuthenticationProvider, RestDetailsServiceImpl formDetailsService, RestAuthenticationSuccessHandler restAuthenticationSuccessHandler, RestAuthenticationFailureHandler restAuthenticationFailureHandler, RestLogoutSuccessHandler restLogoutSuccessHandler, RestAccessDeniedHandler restAccessDeniedHandler) {
this.systemConfig = systemConfig;
this.restAuthenticationEntryPoint = restAuthenticationEntryPoint;
this.restAuthenticationProvider = restAuthenticationProvider;
this.formDetailsService = formDetailsService;
this.restAuthenticationSuccessHandler = restAuthenticationSuccessHandler;
this.restAuthenticationFailureHandler = restAuthenticationFailureHandler;
this.restLogoutSuccessHandler = restLogoutSuccessHandler;
this.restAccessDeniedHandler = restAccessDeniedHandler;
}
/** /**
* @param http http * @param http http
* @throws Exception exception * @throws Exception exception