Java for Web学习笔记(一四二)Spring security准备(3)初窥

了解Spring Security的基本知识

完全J2EE的web container也能提供完整的安全框架,但tomcat不是。Spring Security可以使用JDBC,或者我们的服务或仓库来认证用户,也提供了内置的对微软Active Derectory,Jasig的CAS(Central Authentication Service),JAAS(Java Authentication and Authorization Service),LDAP和OpenID的认证和授权。使用Spring Security要求客户端有额外的处理。

  • org.springframework.security.core.Authentication 继承了Principal。
  • org.springframework.security.core.GrantedAuthority 提供授权。可以支持role和activity授权。如果使用LDAP或者Active Directory进行认证,Spring Security会自动用户归属的directory groups填入Authentication 的授权中。
  • org.springframework.security.authentication.AuthenticationProvider,是为我们应用提供认证服务的提供者。AuthenticationProvider可以有Active Directory, CAS, JAAS, LDAP, OpenID, JDBC多个实现,也可以自定义。

使用Spring Security的授权服务

在Spring Security中,有集中使用授权的方式。当中最好的可能就是使用全局方法安全标记,它可以标记在service的方法上,Spring Security确保带有合适的GrantedAuthority(s)的Authentication来执行方法。

还可以在Spring Security配置中定义方法拦截规则。采用标记还是采用xml配置视我们代码的复杂性,如果应用比较复杂,可能定义方法连接规则比标记更为简单,另外,修改规则,不需要重新编译。

还可以使用URL拦截跪着,这是最容易实现的,但缺点不少,例如我们只能用于web应用,其他的不行;有例如如果我们有多种用户接口(web,REST,SOAP)我们需要为每个用户接口进行定义,这容易造成规则的不一致,从而产生授权漏洞。

一般来讲,我们需要使用标记或者配置规则,加上针对login和logout定义一些URL安全规则。我们将在后面学习到。

配置Spring Security

Spring安全配置和Spring框架配置紧密结合,大量使用ApplicationContext来管理它的安全上下文。

设置Spring Security,可以使用XML,Java或者混合配制。在一个应用上下文中可以有多个Spring Security上下文的配置。具体后面学习。

相关链接:我的Professional Java for Web Applications相关文章

你可能感兴趣的:(JAVA,读书笔记,愷风(Wei)之Java,for,Web学习笔记)