[英]Grails 3, Spring Security Rest username after login
我有一個實現了Spring Security Rest的Grails 3應用程序,我可以從Angular2應用程序成功進行身份驗證,並且將@Secured()應用於控制器可以控制可以訪問應用程序的哪些區域。 因此,鑒於此,我知道身份驗證和授權正在起作用。
我正在嘗試檢索用於身份驗證的登錄用戶的用戶名。
我已經嘗試過Authentication authentication = SecurityContextHolder.getContext().getAuthentication()
它為null。
我嘗試了Principal principal = request.getUserPrincipal()
它也為null。
這是我的應用程序。
grails.plugin.springsecurity.providerNames = ['customADAuthProvider']
grails.plugin.springsecurity.successHandler.alwaysUseDefault = true
grails.plugin.springsecurity.userLookup.userDomainClassName = 'User'
grails.plugin.springsecurity.userLookup.authorityJoinClassName = 'UserRole'
grails.plugin.springsecurity.authority.className = 'Role'
grails.plugin.springsecurity.controllerAnnotations.staticRules = [
[pattern: '/', access: ['permitAll']],
[pattern: '/error', access: ['permitAll']],
[pattern: '/index', access: ['permitAll']],
[pattern: '/index.gsp', access: ['permitAll']],
[pattern: '/shutdown', access: ['permitAll']],
[pattern: '/assets/**', access: ['permitAll']],
[pattern: '/**/js/**', access: ['permitAll']],
[pattern: '/**/css/**', access: ['permitAll']],
[pattern: '/**/images/**', access: ['permitAll']],
[pattern: '/**/favicon.ico', access: ['permitAll']]
]
grails.plugin.springsecurity.filterChain.chainMap = [
[pattern: '/assets/**', filters: 'none'],
[pattern: '/**/js/**', filters: 'none'],
[pattern: '/**/css/**', filters: 'none'],
[pattern: '/**/images/**', filters: 'none'],
[pattern: '/**/favicon.ico', filters: 'none'],
[pattern: '/api/**', filters: 'JOINED_FILTERS,-anonymousAuthenticationFilter,-exceptionTranslationFilter,-authenticationProcessingFilter,-securityContextPersistenceFilter,-rememberMeAuthenticationFilter']
]
grails.plugin.springsecurity.rest.logout.endpointUrl = '/api/logout'
無論我做什么,我都永遠無法獲得身份驗證對象或主體對象來檢索用戶名或任何用戶詳細信息。
我正在使用spring-security-rest:2.0.0.RC1
和Grails 3.3.6
你可以做這樣的事情...
class SomeController {
def springSecurityService
def someAction() {
def user = springSecurityService.currentUser
// ...
}
}
或這個...
class SomeController {
def springSecurityService
def someAction() {
def principal = springSecurityService.principal
String username = principal.username
def authorities = principal.authorities // a Collection of GrantedAuthority
boolean enabled = principal.enabled
// ...
}
}
兩者都直接從https://grails-plugins.github.io/grails-spring-security-core/3.2.x/index.html粘貼
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.