Security配置类

简介: 学习Security配置Demo1

学习Security配置Demo1

@Configuration
@EnableWebSecurity      //继承WebSecurityConfigurerAdapter 实现自定义认证用户身份信息
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class MyWebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Autowired
    private UserDetailsService userDetailsService;
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        //表单提交
        http.formLogin()
                //登陆界面
                .loginPage("/login.html")
                //登录处理的请求
                .loginProcessingUrl("/login")
                //登录成功之后跳转的页面,post请求
//                .successForwardUrl("/toMain")
                .successHandler(new MyAuthenticationSuccessHandler("/main.html"))
                //登陆失败之后跳转的页面,post请求
                .failureForwardUrl("/toError");
        //授权
        http.authorizeRequests()
                //放行 error.html,不需要认证
                .antMatchers("/error.html").permitAll()
                //放行 login.html,不需要认证
                .antMatchers("/login.html").permitAll()
                //放行静态资源
                .antMatchers("/css/**","/js/**","/images/**").permitAll()
                //放行后缀.png,正则表达式
                .regexMatchers("[.]png").permitAll()
                //指定放行的请求方法
                .regexMatchers(HttpMethod.POST,"[.]png").permitAll()
                //所有请求都必须认证才能访问,必须登录
                .anyRequest()
                //认证
                .authenticated()
                .and()
                //关闭csrf防护
                .csrf().disable();
    }
    @Override
    //验证管理
    protected void configure(AuthenticationManagerBuilder auth) throws Exception {
        auth.userDetailsService(userDetailsService).passwordEncoder(new BCryptPasswordEncoder());
    }
    public PasswordEncoder getPw()
    {
        return new BCryptPasswordEncoder();
    }
}


目录
相关文章
|
7月前
|
安全 Java 数据库连接
Security自定义全局AuthenticationManager
Security自定义全局AuthenticationManager
218 1
|
5月前
|
安全 Java 数据安全/隐私保护
解析Spring Security中的权限控制策略
解析Spring Security中的权限控制策略
|
4月前
|
安全 搜索推荐 Java
|
4月前
|
安全 Java 测试技术
Spring Security 中的委托过滤器代理
【8月更文挑战第21天】
49 0
|
安全 Java Spring
Spring Security 配置类
Spring Security 配置类
|
安全 Java Spring
spring security 自定义退出策略
spring security 自定义退出策略
174 0
spring security 自定义退出策略
|
安全
Security重写权限服务配置类
Security重写权限服务配置类
120 0
|
安全 Oracle 关系型数据库
Spring Security系列教程09--基于默认数据库模型实现授权
前言 在上一个章节中,一一哥 给大家讲解了如何基于内存模型来实现授权,在这种模型里,用户的信息是保存在内存中的。你知道,保存在内存中的信息,是无法持久化的,也就是程序一旦关闭,或者断电等情况发生,内存中的信息就丢失了,所以这种方式并不适用于生产环境! 那么我们肯定要把用户信息持久化, 但是持久化到哪里去呢?那就是数据库呗!数据库是我们做程序员必会必熟的知识点,尤其是做后端开发,开发时常用的数据库有MySQL和Oracle,本案例中我们采用的是MySQL数据库。 一. JdbcUserDetailsManager类介绍 在进行编码实现之前,壹哥 先和各位一起来看看Spring Security
299 0
|
安全 Java 数据库连接
Spring Security系列教程10--基于自定义数据库模型实现授权
前言 在上一个章节中,一一哥 给大家讲解了如何基于默认的数据库模型来实现认证授权,在这种模型里,用户的信息虽然是保存在数据库中的,但是有很多的限制!因为我们必须按照源码规定的方式去建库建表,存在灵活性不足的问题。而我们真正开发时,用户角色等表肯定要根据自己的项目需求来单独设计,所以我们有必要进行用户及角色表的自定义设计。 那么在本篇文章中,壹哥 就带各位,结合自己的实际项目需求,进行数据库和表的自定义设计,然后在这个自定义的数据库中实现用户信息的认证与授权工作。 一. 核心API源码介绍 1. UserDetailsService源码 在上一章节中,我给大家介绍了一个JdbcUserDeta
816 0
|
安全 Java 数据库
Spring Security系列教程23--Spring Security的四种权限控制方式
前言 在前面的章节中,一一哥 已经给大家介绍了Spring Security的很多功能,在这些众多功能中,我们知道其核心功能其实就是 认证+授权。在前面我们分别基于内存模型、基于默认的数据库模型、基于自定义数据库模型实现了认证和授权功能,但是不管哪种方式,我们对某个接口的拦截限制,都是通过编写一个SecurityConfig配置类,在该类的configure(HttpSecurity http)方法中,通过http.authorizeRequests().antMatchers("/admin/**")...这样的代码进行的权限控制。 这种权限控制方法虽然也可以实现对某些接口的拦截或放行,但
3697 0