zoukankan      html  css  js  c++  java
  • Springboot中使用springsecurity

    简单记录springboot中使用springsecurity作为权限安全验证框架的步骤。

    原理解析,连接分享。感觉写的不错记录下来

    https://blog.csdn.net/code__code/article/details/53885510

    添加引用

    首先需要引入jar包,Maven坐标如下:

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

    添加安全配置

    使用注解的方式完成配置,同原XML配置。配置内容包括哪些页面需要进行验证,需要什么权限、角色等,详细配置见springsecurity相关配置文档,此处只记录简单配置。登录页、登陆接口等见以下代码种注释。

    @Configuration
    
    public class SecurityConfig  extends WebSecurityConfigurerAdapter {
    
        @Override
    
        protected void configure(HttpSecurity http) throws Exception {
    
            http.authorizeRequests().antMatchers("/dbinfo/man","/token/settings").authenticated().  //定义哪些页面需要登陆才能访问
    
                    and().
    
                    formLogin()
    
                    .loginPage("/login")                    //设置登陆页面
    
                    .loginProcessingUrl("/user/login")      //自定义的登陆接口
    
                    .permitAll();
    
    
    
    
    
        }
    
    }
    
    实践种碰到的问题:

    用了springsecurity后,post请求会被拦截,提示跨域问题。可以关闭默认开启的csrf拦截。 在配置类的config方法中加入:http.csrf().disable(); 

    代码如下

        @Override
        protected void configure(HttpSecurity http) throws Exception {
    //        http.authorizeRequests().antMatchers("/dbinfo/man","/token/settings").authenticated().  //定义哪些页面需要登陆才能访问
    //                and().
    //                formLogin()
    //                .loginPage("/login")                    //设置登陆页面
    //                .loginProcessingUrl("/user/login")      //自定义的登陆接口
    //                .permitAll();
    
            http
                .authorizeRequests()
                    .antMatchers("/dbinfo/man","/token/settings","/mailconfig").authenticated()
                    .anyRequest().permitAll()
                    .and()
                .formLogin()
                    .loginPage("/login")
                    .permitAll()
                    .and()
                .logout()
                    .logoutSuccessUrl("/")
                    .permitAll();
            http.csrf().disable();          //POST跨域问题
        }
    














  • 相关阅读:
    npm 学习笔记
    Splash 学习笔记
    lodash 学习笔记
    运用 CSS in JS 实现模块化
    运用 CSS methodologies 去实现模块化
    less 学习笔记
    初探爬虫 ——《python 3 网络爬虫开发实践》读书笔记
    mitmproxy 使用笔记
    Appium 使用笔记
    Selenium 与自动化测试 —— 《Selenium 2 自动化测试实战》读书笔记
  • 原文地址:https://www.cnblogs.com/falcon-fei/p/9732798.html
Copyright © 2011-2022 走看看