如何使用基于Scope的@PreAuthorize保护spring-security-oauth资源?

如何使用基于Scope的@PreAuthorize保护spring-security-oauth资源?,第1张

如何使用基于Scope的@PreAuthorize保护spring-security-oauth资源?

Spring
OAuth随附了

OAuth2MethodSecurityexpressionHandler
,该类增加了使用@PreAuthorize表达式进行此类检查的功能。您需要做的就是注册该类,例如,如果您使用的是Javaconfig,则像这样:

@Configuration@EnableGlobalMethodSecurity(prePostEnabled = true)public static class MethodSecurityConfig extends GlobalMethodSecurityConfiguration {    @Override    protected MethodSecurityexpressionHandler createexpressionHandler() {        return new OAuth2MethodSecurityexpressionHandler();    }}

现在您可以简单地使用:

@PreAuthorize("#oauth2.hasScope('requiredScope')")

保护您的请求方法。要查看还可以使用哪些其他方法,请

hasScope
检查类
OAuth2SecurityexpressionMethods

缺点是

OAuth2MethodSecurityexpressionHandler
扩展
DefaultMethodSecurityexpressionHandler
,因此您无法将其与也扩展该类的其他类组合。

或者,您也可以将OAuth范围映射到经典用户角色。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5429793.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存