Springboot中使用springsecurity

宋翔
2023-12-01

简单记录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跨域问题
    }

 















转载于:https://www.cnblogs.com/falcon-fei/p/9732798.html

 类似资料: