SpringSecurity简单记录
在pom.xml中将springsecurity导入后,对于springsecurity会出现三个依赖包:spring-security-web,spring-security-config,spring-security-core.其中spring-security-core包含了核心的认证和访问控制接口,远程支持和基本的API.这些都是任何使用Spring Security的应用程序所需要的。支持独立的应用程序,远程客户端,业务层的方法安全和JDBC用户的提供。所包含的顶级包名有:
org.springframework.security.core
org.springframework.security.access
org.springframework.security.authenticaiton
org.springframework.security.provisioning
对于spring-security-remoting.jar如果不写远程客户端的话,是不需要这个依赖的。
对于spring-security-web.jar:
包含过滤器和相关的web-security的基本代码。无论何时都需要一个servlet API的依赖。如果你想使用Spring Security的web认证服务和URL的访问控制,那么你就需要这个依赖,主要的包是org.springframework.security.web.
对于spring-security-config.jar
包含安全的命名空间解析代码和java配置代码。如果你使用Spring Security的 XML命名空间来作为配置,或者Spring Security的java配置支持,那么你就需要这个依赖。主要的包为:org.springframework.security.config。这个包中class并不能直接在应用程序中使用。
另还有:spring-security-ldap.jar;spring-security-acl.jar;spring-security-cas.jar;spring-security-openid.jar;
spring-security-test.jar
对于使用自定义的java配置,那么自定义的类需要继承WebSecurityConfigurerAdapter.一旦引入SpringSecurity依赖后,所有的访问应用的ApI都需要被认证。Spring Security模块会生成默认的登陆表单。用户可以通过用户名和密码来通过基于表单的认证。
对于HttpSecurity:
WebSecurityConfig仅仅只是包含一些如何让用户认证的信息。之所以Spring Security知道我们想所有的用户都被认证和我们支持表单的认证,是因为我们在WebSecurityConfigurerAdapter中进行了配置,WebSecurityConfigurerAdapter类中有缺省的配置,如果想自定义配置就自定义类并继承WebSecurityConfigurerAdapter。然后重写configure(HttpSecurity http),如下图:
AuthenticationProvider:用户认证时的处理类,如果需要自定义用户认证处理类,则需要实现该接口。
UserDetailsService:用户进行认证时的获取用户信息的服务类,如果想自定义信息服务类,则实现该接口即可。
暂时先写这么多