SpringSecurity入门demo(一)集成与默认认证

一、集成与默认认证:

1、说明:在引入 Spring Security 项目之后,没有进行任何相关的配置或编码的情况下,Spring Security 有一个默认的运行状态,要求在经过 HTTP 基本认证后才能访问对应的 URL 资源,其默认使用的用户名为 user, 密码则是动态生成并打印到控制台的一串随机码。

2、demo验证:

(1)pom:只需要pom添加相关依赖,即完成默认集成功能



    4.0.0

    com.demo.security
    security-demo
    1.0-SNAPSHOT
    
        org.springframework.boot
        spring-boot-starter-parent
        2.1.14.RELEASE
    

    
        
            org.springframework.boot
            spring-boot-starter
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        
        
            org.springframework
            spring-aop
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.springframework.security
            spring-security-web
        
        
            org.springframework.security
            spring-security-config
        
    

    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                
                    1.8
                    1.8
                
            
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    
    

(2)配置文件:

server.port=8089
//springboot2.0之后的路径配置写法
server.servlet.context-path=/securityDemo

(3)启动类:

@SpringBootApplication
public class StartApplication {
    public static void main(String args[]){
        SpringApplication.run(StartApplication.class,args);
    }
}

(4)controller:

@RestController
@RequestMapping("/user")
public class UserController {

    @RequestMapping("/test")
    public String test(){
        return "这是user test";
    }
}

2、默认配置:

(1)启动项目,可以看到后台打印

Using generated security password: 4f393758-019f-4084-8ddf-f387471edae6

SpringSecurity入门demo(一)集成与默认认证_第1张图片

(2)浏览器访问拟好的/user/test接口:http://localhost:8089/securityDemo/user/test

发现自动重定向到http://localhost:8089/login并且弹出登陆表单

SpringSecurity入门demo(一)集成与默认认证_第2张图片

用户名输入user,密码输入刚才控制台打印的一串密码,点击登陆后自动重定向:

SpringSecurity入门demo(一)集成与默认认证_第3张图片

如果输入错误的用户名或者密码,会自动跳转到error页面

SpringSecurity入门demo(一)集成与默认认证_第4张图片

3、指定身份:在 HTTP 基本认证中,用户名和密码都是可以配置的,最常见的就是在 resources 下的配置文件中修改,

重新启动程序,发现控制台不再打印默认密码串了,此时使用自定义的用户名和密码即可登录。

二、弊端:事实上,绝大部分 Web 应用都不会选择 HTTP 基本认证这种认证方式,安全性差、无法携带 cookie 、灵活性不足。通常选择表单认证,自己实现表单登录页和验证逻辑,从而提高安全性。

你可能感兴趣的:(java)