我将Grails应用程序拆分为两个应用程序 - 面向客户的Web应用程序和一个托管REST API的独立应用程序。我这样做是因为我正在构建一个iOS应用程序以配合我的网络应用程序。我的应用程序使用Spring Security,我想保护REST api。我惊讶地发现很少有关于正确方法的信息。我应该使用Spring Security实现oauth,从而使我的API应用程序成为oauth提供者吗?
任何建议都会很棒。
答案 0 :(得分:3)
是的,我刚刚为另一个应用程序做了这个。在访问REST URL时,您必须告诉spring security的行为不同。
将此添加到您的config.groovy
现在,您将通过以下方式对应用程序的两个部分进行身份验证
a)在URL中使用/ api(假设你如何设置REST),获得基本身份验证
b)其他所有内容都会通过登录页面。
// making the application more secured by intercepting all URLs
grails.plugins.springsecurity.useBasicAuth = true
grails.plugins.springsecurity.basic.realmName = " REST API realm"
grails.plugins.springsecurity.securityConfigType = SecurityConfigType.InterceptUrlMap
//Exclude normal controllers from basic auth filter. Just the JSON API is included
grails.plugins.springsecurity.filterChain.chainMap = [
'/api/**': 'JOINED_FILTERS,-exceptionTranslationFilter',
'/**': 'JOINED_FILTERS,-basicAuthenticationFilter,-basicExceptionTranslationFilter'
]
答案 1 :(得分:3)