初识 Spring Security

背景:

        Spring Security 的前身是 Acegi Security,在被收纳为 Spring 子项目后正式更名为 Spring Security。截止到目前位置,Spring Security 已经升级到 5.3.9 版本,不仅新增了原生 OAuth 框架,还支持更加现代化的密码加密方式。

maven 依赖:

        完整的 pom.xml 的内容如下所示,需要注意的是,我们 Spring Boot 使用的版本是 1.5.10 。它对应的 Spring Security 的版本为 4.2.4.RELEASE

    
		org.springframework.boot
		spring-boot-starter-parent
		1.5.10.RELEASE
	
	
		3.1.1
	
	
		
			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
			
		
	

添加启动类:

        还需要新建一个启动类 SpringDemoApplication ,代码内容如下所示:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class SpringDemoApplication {

	@GetMapping("/")
	public String hello() {
		return "hello spring security";
	}
	
	public static void main(String[] args) {
		SpringApplication.run(SpringDemoApplication.class,args);
	}
}

项目目录:

        项目结构如下图所示:

初识 Spring Security_第1张图片

测试:

        启动工程,在浏览器输入 http://localhost:8080,浏览器将弹出一个需要进行身份验证的对话框,如下图所示:

初识 Spring Security_第2张图片

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

初识 Spring Security_第3张图片

        输入用户名和密码后,点击 “ 登录 ” 按钮即可成功跳转,如下图所示:

初识 Spring Security_第4张图片

        当然,在 HTTP 基本认证中,用户名和密码都是可以配置的,最常见的就是在 resources 下的配置文件中修改,如下图所示:

初识 Spring Security_第5张图片

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

        事实上,绝大部分 Web 应用都不会选择 HTTP 基本认证这种认证方式,除安全性差、无法携带 cookie 等因素外,灵活性不足也是它的一个主要缺点。通常大家更愿意选择表单认证,自己实现表单登录页和验证逻辑,从而提高安全性。

你可能感兴趣的:(spring,security,spring,boot,spring,boot)