Kite的学习历程之SpringBoot简单整合Security框架

Kite学习历程的第三十九天

SpringBoot简单整合Security框架

1. 使用Spring Initializr 创建一个demo

在创建时引入:web, security 依赖

2. 查看pom.xml文件

主要引入的两个依赖:
spring-boot-starter-security
spring-boot-starter-web


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.2.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>cn.kitey</groupId>
    <artifactId>demo01</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>demo01</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

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

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

3. 创建controller包以及类democontroller

用来放置网页访问路径以及页面


@RestController
@EnableAutoConfiguration   //添加自动配置
public class demoController {

    @RequestMapping("/")
    public  String home(){
        return "Hello SpringBoot";
    }

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


4. 创建配置包config以及配置类,进行security的配置

http.authorizeRequests():为主要配置那些访问直接允许访问,那些需要进行验证
我这里设置的允许直接访问路径为: /
需要进行验证的访问路径:/hello


@Configuration
@EnableWebSecurity
public class SpringSecurityConfig extends WebSecurityConfigurerAdapter {

    /**
     * 决定了那些请求会被拦截,以及如何处理
     * @param http
     * @throws Exception
     */
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
                .antMatchers("/").permitAll()  //允许访问
                //设置其他请求必须经过验证
                .anyRequest().authenticated()
                .and()
                .logout().permitAll()
                .and()
                //允许表单登录
                .formLogin();
        //关闭其验证
        http.csrf().disable();
    }

    @Override
    public void configure(WebSecurity web) throws Exception {
        //让其先忽略一些静态文件
        web.ignoring().antMatchers("/js/**", "/css/**", "/images/**");
    }
}

5. 经行测试

访问:localhost:8080
这里允许访问
在这里插入图片描述
访问:localhost:8080/hello
会跳转到这个验证页面
在这里插入图片描述
用户名:user
密码:在运行控制台可以获得密码
在这里插入图片描述
输入用户密码进行访问
在这里插入图片描述
可以访问我们设置的内容。

©️2020 CSDN 皮肤主题: 1024 设计师:上身试试 返回首页