集成Spring Security
效果:访问hello.html会被重定向到login.html,登录成功后,转到hello,登录失败,转到error
一:添加依赖
<!-- spring security依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
二:配置SecurityConfig
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
//所有访问都需要验证
.anyRequest().authenticated()
.and()
//自定义登录页面
.formLogin().loginPage("/login")
.loginProcessingUrl("/form")
//失败页面
.failureUrl("/error")
//登录成功页面
.defaultSuccessUrl("/hello")
.permitAll()
.and()
//关闭csrf
.csrf().disable()
;
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
auth.inMemoryAuthentication()
//自定义内存角色
.withUser("admin").password(passwordEncoder().encode("1")).roles("USER");
}
}
三:页面
login.hrml
<body>
<form action="/form" method="POST">
<table>
<tr>
<td>用户名:</td>
<td><input typpe="text" name="username" value="admin"></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="password" value="1">
<td></td>
<tr>
<td colspan="2"><input type="submit" value="登录"></td>
</tr>
</table>
</form>
</body>