上一章我们已经搭建好了springboot的监视器及其可视化界面,这里来完善它的安全性,这里用到的就是security这个访问控制框架。
用起来也很简单,直接在pom文件加入引用:
<!-- 监控页面的安全性控制 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
即可直接使用。
重启项目后,参考上章直接访问monitor的页面,可以看到的是由于加入了Security,未登录的情况下会直接跳出登录的页面需要进行登录操作:
用户名的账号密码配置也很简单:
回到项目的配置文件,我们只要加上如下代码:
# 配置security安全框架的登录参数
spring:
security:
user:
name: admin
password: 456123
即可。
再次访问登录页面进行登录,我们会发现还有一个问题:那就是当我们成功输入账户名密码时,登陆成功后跳转的页面却出现了问题:例如我们需要跳转到monitor的首页,但是实际跳转的却是一个error的页面,这是由于我们未指定登录成功跳转页面引起的。
指定的方法如下:
我们需要创建一个类去继承一下WebSecurityConfigurerAdapter,重写它里面的configure方法即可:
@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter{
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeRequests()
.anyRequest().authenticated()
.and()
.formLogin()
.defaultSuccessUrl("/monitor") // 访问指定页面,用户未登入,跳转至登入页面,如果登入成功,跳转至用户访问指定页面,用户访问登入页面,默认的跳转页面
.failureUrl("/login.html")
.permitAll()
.and()
.csrf().disable();
}
}
保存后重启项目即可,再次访问login页面,成功登录后成功跳转至我们指定的页面。