1. 程式人生 > >Springboot中使用springsecurity

Springboot中使用springsecurity

cte 進行 cti 使用註解 extends nbsp 接口 配置 conf

簡單記錄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跨域問題
    }















Springboot中使用springsecurity