SpringSecurity官方文档阅读翻译3-------结构体系的实现(类似于翻译,持续连载中~)

Authentication in a Web Application

思考一个很典型的身份验证的过程:
1.访问主页,点击登录链接
2.服务器收到一个请求,服务器对你请求的受保护的资源做决定
3.如果当前你没有身份验证,服务器会返回一个让你进行身份验证的响应。这个响应要么是http的响应码,要么让你重定向到一个特别的页面。
4.根据身份验证机制,你会重定向到一个特定的网页,以便于填写表单,浏览器将以某种方式检索你的身份。
5.浏览器向服务器发送请求,要么是包含你填写的内容的一个POST请求,要么是包含你身份验证信息的http头。
6.接下来,服务器判断这个浏览器提供的凭证是否有效(账号密码是否对的)。
7.传统的请求,会让身份验证过程重现,你希望的你有足够的权限通过了验证,去访问受保护的资源,如果你又足够的权限,请求会非常顺利,否则你就会收到一个带有403的响应码,意思是禁止访问。。

Spring Security 的很多完成上述内容各司其职的类,最要负责的是ExceptionTranslationFilter, an AuthenticationEntryPoint和一个“身份验证”机制,它为AuthenticationManager 负责。

Access-Control (Authorization) in Spring Security

The main interface responsible for making access-control decisions in Spring Security is the AccessDecisionManager. It has a decide method which takes an Authentication object representing the principal requesting access, a "secure object" (see below) and a list of security metadata attributes which apply for the object (such as a list of roles which are required for access to be granted).

Security and AOP Advice 增强

如果你熟悉aop,他有before, after, throws and around这几种增强方式,环绕增强是非常有用的,因为一个advisor(通知)能选择是否要执行方法调用,是否修改响应,是否抛出一个异常。Spring Security 为方法调用和web请求提供了环绕增强。我们使用spring的标准aop去实现方法调用的环绕增强,使用过滤器来实现Web请求。
对于方法授权你可以使用spring aop或者aspectJ,对于web请求授权你可以选择过滤器,主流的模式是执行一些web请求的授权,在service层对方法调用授权使用spring aop.

你可能感兴趣的:(SpringSecurity官方文档阅读翻译3-------结构体系的实现(类似于翻译,持续连载中~))