Spring Security 简单使用
前言
web应用达到生产需要就必须有安全控制。java web领域经常提及的两大开源框架主要有两种选择Spring Security和Apache Shiro 。 Spring Security提供了更多的诸如 LDAP 、 OAuth2.0 、 ACL 、 Kerberos 、 SAML 、 SSO 、 OpenID 等诸多的安全认证、鉴权协议,可以按需引用。对认证/鉴权更加灵活,粒度更细。可以结合你自己的业务场景进行更加合理的定制化开发。
认证/鉴权
这两个概念英文分别为 authentication / authorization 。 无论你选择简单来说认证(authentication)就是为了证明 你是谁 ,比如你输入账号密码证明你是用户名为admin 的用户。而授权(authorization)是通过认证后的用户所绑定的角色等凭证来证明 你可以做什么 。
接下来我们进行一个SpringSecurity 简单使用。
新建springboot项目
或者手动导入Security jar
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
启动项目,访问 Actuator 端点 http://localhost:8080/actuator 会跳转到一个登录页面
http://localhost:8080/login 如下:
要求你输入用户名 Username (默认值为user)和密码 Password 。密码在springboot控制台会打印出类似 Using generated security password: e1f163be-ad18-4be1-977c-88a6bcee0d37 的字样,后面的长串就是密码,当然这不是生产可用的。如果你足够细心会从控制台打印日志发现该随机密码是由 UserDetailsServiceAutoConfiguration 配置类生成的。