这里写自定义目录标题
前言
在读这篇文章之前请先读
https://blog.youkuaiyun.com/dtttyc/article/details/88950201
自定义登陆配置
上一篇文章讲解的Security是如何使用的,但是写的比较死,这次通过配置我们可以实现登陆可以利用表单也可以利用我们自己写的页面
- WebSecurityConfigurerAdapter中方法void configure(HttpSecurity http),登陆的时候不要把地址写 http.httpBasic()或者表单
http.formLogin()
.loginPage("/authentication/require")
@RequestMapping("/authentication/require")
@ResponseStatus(code = HttpStatus.UNAUTHORIZED)
public SimpleSupport requireAuthentication(HttpServletRequest request, HttpServletResponse response) throws IOException {
//得到访问的url
SavedRequest savedRequest=requestCache.getRequest(request,response);
if (savedRequest != null) {
String redirectUrl = savedRequest.getRedirectUrl();
//截取字符串后面为HTML
if (StringUtils.endsWithIgnoreCase(redirectUrl,"html")){
redirectStrategy.sendRedirect(request,response,securityProperties.getBrowser().getLoginPage());
}
}
return new SimpleSupport("访问服务需要身份验证");
}
- 在application.properties
imooc.security.browser.loginPage = /demo-signIn.html
- 读取配置信息
/**
* @Author: judy
* @Description: 读取配置信息
* @Date: Created in 10:58 2019/4/10
*/
@ConfigurationProperties(prefix = "imooc.security")
public class SecurityProperties {
BrowserProperties browser= new BrowserProperties();
public BrowserProperties getBrowser() {
return browser;
}
public void setBrowser(BrowserProperties browser) {
this.browser = browser;
}
}
- 配置地址和设置默认的地址
/**
* @Author: judy
* @Description: 配置地址和设置默认的地址
* @Date: Created in 10:59 2019/4/10
*/
public class BrowserProperties {
private String loginPage="/imooc-signIn.html";
public String getLoginPage() {
return loginPage;
}
public void setLoginPage(String loginPage) {
this.loginPage