欢迎来到天天文库
浏览记录
ID:41384515
大小:61.10 KB
页数:3页
时间:2019-08-23
《SPRINGSECURITYJAVA配置:OAUTH-Java开发Java经验技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、SPRINGSECURITYJAVA配置:OAUTH-Java开发Java经验技巧SPRINGSECURITYJAVA配置OAUTH木文由ImportNew・唐小娟翻译自Springsourceo欢迎加入翻译小组。转载请见文末要求。这是这个系列的第四篇。我们将会用一个OAuth的例子来看看Java配置是如何扩展的。概念验证(Proofofconcept,简称POC)译者注:概念验证(Proofofconcept,简称POC)是对某些想法的较短的不完整的实现,以证明其可行性,示范其原理,其口的是为了验证一些概念或理论。SpringSec
2、urity的Jqvei配置和基本的配置合作工作的很好,但这仅仅是一个POCo我们尚不能保证XML命名空间屮的所冇功能都可以对Java配置进行支持。当然保证SpringSecurity的Java配置与Springextension配合良好是非常重要的。但我们已经等不及完成所有的细节,就把SpringSecurityJavaconfig发布出來了。将來我们会完善OAuthJava配置,但现在这里仅仅是一个POC,而不是完全的解决方法。HelloOAuth2ServerConfigurationSpringSecurityOAuthJava
3、配置目前支持基本的OAuth2服务器端配置。最简单的设置如下:©Configuration@EnableWebSecuritypublicclassHelloOAuth2ServerConfigurationextends0Auth2ServerConfigurerAdapter{privatestaticfinalStringRESOURCETD二"photos";©OverrideprotectedvoidregisterAuthentication(AuthenticationManagerBuilderauth)throwsE
4、xception{auth.apply(newInMemoryClientDetailsServiceConfigurerO)・withClient("my-client").resourcelds(RESOURCEID).authorizedGremtTypes(〃authorization_code〃,〃implicit")・authorities(,zR0LE_USER/,)・scopes(,zread,z,"write").secret("secret");©Overrideprotectedvoidconfigure(Htt
5、pSecurityhttp)throwsException{http.authorizeUrls().anyRcqucst()・authcnticatcd().and().apply(new0Auth2ServerConfigurer())・resourceld(RESOURCEID);}"}现在我们可以处理OAuth请求了。但是仍然有很多限制:•如果一个用户获得了OAuth服务器的请求许可,我们仍然需要一个Controller來处理'7oauth/confirm_access"。•只有OAuth客户端可以验证用户,所以对于用户來说,
6、没办法确认访问。•授权(Authorization)H^:射到了验证路径(authentication),这显然是个错误的例子。SecurityConfigurer我们先不要管这些问题,我们來看看发生了什么。0Auth2ServerConfigurer是SecurityConfigurer的实例。实现SecurityConfigurer时最好是继承SecurityConfigurerAdapter,因为它是SecurityConfigurerAdapter最基本的实现。要让HttpSecurity能够接受SecurityConfigu
7、rer,我们可以添加插件(譬如OAuth),这用一种更复杂的方法更新了HttpSecurity对彖。事实上,HttpSecurity.formLogin()方法也是用SecurityConfigurerAdapter来实现的。不同之处在于,HttpSecurity.formLogin()是SpringSecurity的核心模块,所以有更简便的方法來实现pply(SecurityConfigurcrAdaptcr)。我们不仅可以让SecurityConfigurer应用到HttpSecurity对彖(译者注:configure(Http
8、Securityhttp)方法),也可以让SecurityConfigurer应用到AuthenticationManagerBuilder(译者注:registerAuthentication(Authenticati
此文档下载收益归作者所有