Spring安全系统包含以下七个关键的功能组件:
l. Authentication,包含了Principal,Credential和Principal的授权信息。同时还可以包含关于发起认证请求的客户的其他信息,如IP地址。
2. ContextHolder,使用ThreadLocal储存Authentication对象的地方。
3. AuthenticationManager,用于认证ContextHolder中的Authentication对象。
4. AccessDecisionManager,用于授权一个特定的操作。
5. RunAsManager,当执行特定的操作时,用于选择性地替换Authentication对象。
6. Secure Object拦截器,用于协调AuthenticationManager,AccessDecissionManager,RunAsManager和特定操作的执行。
7. ObjectDefinitionSource,包含了特定操作的授权定义。