Arch-03-24- Spring Security 应用
Spring Security 用了几次,还没有在集群环境中使用的,这次需要在集群中使用了。
?
(一)认证的基本术语
?
User - 用户Fecerated User - 联合用户External User - 外部用户Authentication - 验证Credentials - 凭据Application Security Layer - 应用安全层,过渡器检查每个 http 请求。Application Layer - 应用层,每个 http 请求访问应用层都必须通过应用安全层。?
(二)URI mappings
- /admin/** - 管理控制台/rpc/xmlrpc - 基于 XML 的 XML-RPC?/rpc/rest - RESTful HTTP services/rpc/soap - SOAP HTTP services/** - 全部需要验证(三)Filter ChainsSession 集成 - 访客进入或者 Http 请求访问安全上下文 - ?httpSessionContextIntegrationFilter验证 - Spring Security 默认实现?
FormAuthenticationProcessingFilter
?- ?formAuthenticationFilterCookie 验证 - 处理“记住我”cookies,长效 Http cookies 用于验证 session 用户 -?rememberMeProcessingFilterFeed 基本认证 - Rss/Atom feeds 阅读器验证,通常是专门的阅读器,不是基于浏览器 -?feedBasicAuthenticationFilter异常事务 - 各种安全相关的异常重定向,通常在 struts 层处理 -exceptionTranslationFilter事务验证 - 在应用安全屋和代码间强制验证 - pAuthenticationTranslationFilter?(四)验证约定pAuthenticationTranslationFilter 会检查?SecurityContext
?的有效性SecurityContextHolder.getContext().setAuthentication(new UserAuthentication(new UserTemplate()))DWR 和 webservice 的认证检查使用代理层,DWR 使用主 web 应用的 session 验证,REST 使用基础 HTTP 认证,通常每个 web services 请求都会进行验证(五)验证权限 - 管理控制台提供页面用于分配用户和用户组权限分组 - 合并用户的系统权限。权限可以分配给组和组成员,重复的权限会被覆盖代理 - 代理应用层对象是透明的,不影响安全层代码(六)实现类PermissionsManagerGroupManagerSecurity 子类 PAuthentication(七)Webservice 安全入门- 客户端登录连接 web service 使用 username tokenWSSE 规范,用于 SOAP 用户认证,也能扩展到 HTTP Service。如许多 Atom 和 RESTful 服务使用简单的验证还不够,这些简单的验证包括 HTTP 基础验证,HTTP SSL,HTTP Digest, Hash-Based 认证。工作方式,每一个 SOAP 请求都包含安全报头,报头包含 username 和 password,符合 HTTP 认证规范。Username Token Profile Specification 的 PasswordText 选项是文本方式传输,须使用 SSL 加密。 PasswordDigest 使用 WSS4j interceptor 实现。 PasswordDigest 工作方式:
(九)附件是最简单配置可运行的 war 包。
?