我最近从JSecurity插件迁移到了Spring Security.如何从我的控制器中获取经过身份验证的用户?
Ted*_*eid 15
它目前尚未记录,但在插件安装文件中,它为每个控制器添加了3种方法,因此您实际上不必注入authenticationService:
private void addControllerMethods(MetaClass mc) {
mc.getAuthUserDomain = {
def principal = SCH.context?.authentication?.principal
if (principal != null && principal != 'anonymousUser') {
return principal?.domainClass
}
return null
}
mc.getPrincipalInfo = {
return SCH.context?.authentication?.principal
}
mc.isUserLogon = {
def principal = SCH.context?.authentication?.principal
return principal != null && principal != 'anonymousUser'
}
}
Run Code Online (Sandbox Code Playgroud)
这意味着你可以打电话
principalInfo
Run Code Online (Sandbox Code Playgroud)
获得主要对象.它还具有"isUserLogin"以查看用户是否已记录,并且"authUserDomain"用于获取与登录用户的主体关联的实际域类实例(Person/User).
Chr*_*ris 13
以下代码来自Spring Security Core Plugin(版本:1.1.2) - 参考文档 - 第6.2节
grails.plugins.springsecurity.SpringSecurityService提供安全实用程序功能.它是一个常规的Grails服务,因此您使用依赖注入将其注入控制器,服务,taglib等:
class SomeController {
def springSecurityService
def someAction = {
def user = springSecurityService.currentUser
…
}
}
Run Code Online (Sandbox Code Playgroud)
Joh*_*ner 10
我正在使用0.5.1,以下内容适用于我:
class EventController {
def authenticateService
def list = {
def user = authenticateService.principal()
def username = user?.getUsername()
.....
.....
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20940 次 |
| 最近记录: |