您好我使用Grails构建的后端和AngularJS中的前端构建应用程序。我想使用Grails Spring Security Plugin来为我的应用程序提供一些安全性,但我遇到了一些问题。首先,我不知道如何只允许具有指定角色的用户访问专用URL。
例如,我有3种类型的网址
/userspace/** - (eg. http://localhost:8080/MyApp/#/userspace/settings -displays view with user's profile settings)
/adminspace/** - (eg. http://localhost:8080/MyApp/#/adminspace/usersManagement - displays view with registered users)
/rest/** - (eg. http://localhost:8080/MyApp/rest/book - returns JSON list of books, http://localhost:8080/MyApp/book/123 - returns book as JSON with id=123.
我想为/userspace/
和ROLE_USER
/adminspace/
提供ROLE_ADMIN
的访问权限。
我不知道我应该在Config.goovy
设置哪些属性才能实现?在网址中有角度#
吗?
我也不确定应该如何保护/rest/**
。这些网址用于与后端进行通信,有时它们是由角度的$http
服务从角度控制的所有视图控制器调用的,但有时它们是从受保护的视图中调用的。也许方法是让所有人都可以使用/ rest / ** urls并使用指定的注释,例如。 grails控制器中的@Secured(['ROLE_USER'])
?
我很感激帮助
答案 0 :(得分:1)
这里讨论(当然不是特定于Angular):http://grails-plugins.github.io/grails-spring-security-core/docs/manual/guide/requestMappings.html
如果您有带注释的控制器,请在controllerAnnotations.staticRules
地图中映射这些额外的网址。否则,请在数据库中使用Requestmaps,或在interceptUrlMap
属性中使用一个大地图。