码迷,mamicode.com
首页 > 编程语言 > 详细

Spring Boot (23) 使用Redis

时间:2018-06-04 19:20:50      阅读:141      评论:0      收藏:0      [点我收藏+]

标签:page   conf   extends   users   开启   请求   ebs   log   ram   

除了使用拦截器、过滤器实现对没有权限访问的页面跳转到登陆页外,还可以通过框架实现:Spring Security。

使用Spring Security 完成登陆验证:

1.pom.xml添加依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

2.创建spring security的配置类WebSecurityConfig.java

@Configuration
//开启spring security
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                //通过authorizeRequests定义哪些url需要被保护,哪些不被保护
                .authorizeRequests()
                // / 和 /users/ 可以访问
                .antMatchers("/", "/users/").permitAll()
                .anyRequest().authenticated()
                .and()
                .formLogin()
                //需要登陆时 转到的登陆页面
                .loginPage("/login")
                .permitAll()
                .and()
                .logout()
                .permitAll();
    }

    @Autowired
    //在内存中创建一个用户,该用户的名称为user1,密码为123 用户角色为Admin
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        //从内存中获取
        auth
                .inMemoryAuthentication()
                .passwordEncoder(new BCryptPasswordEncoder())
                .withUser("user1")
                .password(new BCryptPasswordEncoder().encode("123"))
                .roles("Admin");
    }
}

新增登陆请求与页面

LoginController.java

@Controller
public class LoginController {

    @RequestMapping("/login")
    public String login(){
        return "login";
    }

}

resources/templates/login.html

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:th="http://www.thymeleaf.org"
      xmlns:sec="http://www.thymeleaf.org/thymeleaf-extras-springsecurity3">
<head>
    <title>Spring Security Example </title>
</head>
<body>
<div th:if="${param.error}">
    用户名或密码错
</div>
<div th:if="${param.logout}">
    您已注销成功
</div>
<form th:action="@{/login}" method="post">
    <div><label> 用户名 : <input type="text" name="username"/> </label></div>
    <div><label> 密  码 : <input type="password" name="password"/> </label></div>
    <div><input type="submit" value="登录"/></div>
</form>
</body>
</html>

 

测试:访问 /users/ 没问题 ,访问/users/2 跳转到login.html页 , 输入 user1 pass:123 则登陆成功,在访问/users/2 没有问题。

 

Spring Boot (23) 使用Redis

标签:page   conf   extends   users   开启   请求   ebs   log   ram   

原文地址:https://www.cnblogs.com/baidawei/p/9122858.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!