乐趣区

关于spring-security:Spring-Security学习笔记一

1 Spring Security

1.1 简介

Spring Security是一个弱小和高度可定制的认证和管制拜访框架,是基于 Spring 利用的事实上的平安规范,次要聚焦于为 Java 利用提供受权和认证性能,次要性能如下:

  • 对认证和受权的全面和可扩大反对
  • 避免诸如Session Fixation、点击劫持、跨站点申请伪造攻打
  • Servlet API集成
  • Spring MVC可全集成

1.2 已集成的认证技术

  • HTTP BASIC authentication headers/HTTP Digest authentication headers/HTTP X.509 client certificate exchange:基于 IETF RFC 的规范
  • LDAP:常见的跨平台身份验证形式
  • Form-based authentication:用于简略的用户界面需要
  • OpenID authentication:一种去中心化的身份认证形式
  • Authentication based on pre-established request headers:一种用户身份验证以及受权的集中式平安根底计划
  • Jasig Central Authentication Service:单点登录计划
  • Transparent authentication context propagation for Remote Method Invocation and HttpInvoker:一个 Spring 近程调用协定
  • Automatic "remember-me" authentication:容许在指定到期工夫前自行从新登录零碎
  • Anonymous authentication:容许匿名用户应用特定身份平安拜访资源
  • Run-as authentication:容许在一个会话中变换用户身份的机制
  • Java Authentication and AuthorizationJASSJava验证和受权API
  • Java EE container authentication:容许零碎持续应用容器治理这种身份验证形式
  • Kerberos:一种应用对称密钥机制,容许客户端和服务器互相确认身份的认证协定

除此之外还引入了其余第三方包,比方 JOSSO,另外如果都无奈满足需要,Spring Security 也容许开发人员本人编写认证技术。

2 简略Demo

上面来动手做一个简略的 Demo 去体验一下Spring Security

2.1 新建工程

默认即可:

依赖抉择 Spring WebSpring Secutiry

2.2 启动类

批改启动类,使其作为 Controller 类:

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

    @GetMapping("/")
    public String hello(){return "Hello, Spring Security.";}
}

2.3 运行

运行后能够看见控制台有一串主动生成的明码:

浏览器拜访

http://localhost:8080

会主动跳转到

http://localhost:8080/login

明码输出控制台中的明码,用户名默认为user,就能够登录了:

胜利后会主动跳转到

http://localhost:8080

2.3 批改根本认证用户名与明码

批改application.properties/application.yaml,增加如下属性:

spring.security.user.name=test
spring.security.user.password=test

该认证形式本质上是 HTTP 根本认证形式,只须要用户名和明码,而下面的两项属性能够自定义根本认证的用户名和明码,测试:

3 参考

  • Spring Security 官网
退出移动版