图1 UserDetailsService的类图
图1 MethodSecurityInterceptor的类图
图1 FilterSecurityInterceptor的beforeInvocation方法调用图
图1
(adsbygoogle = window.adsbygoogle || []).push({});
接口行为的扩展,经常面临这样的问题,之前已经定义好一个接口,且该接口已经在很多地方使用到,现在我们想让新增新方法。
今天给自己提出一个问题,如何在项目代码中,如何将技术复杂度与业务复杂度分开,我以前从未想过这个问题,直到看到张逸的领域驱动设计。
Eric Evans认为"很多应用程序最主要的复杂度并不是技术上,而是来自域本身、用户的活动或业务"。最终决定的因素还是因为需求。
先上一张图,如下图1所示,SecurityContext只有俩个方法,即getAuthentication()和setAuthentication(),如下:
当我们访问/oauth/token时,首先会经过BasicAuthenticationFilter,之后才会到TokenEndPoint