gpt4 book ai didi

angularjs - 在Grails应用中使用Spring Security Rest插件调用登录时出现401未经授权的错误

转载 作者:行者123 更新时间:2023-12-02 14:43:16 28 4
gpt4 key购买 nike

我有一个grails应用程序,其中mongodb作为带有Spring Security Rest插件的数据源。使用angularjs,我试图通过$ http.post调用登录用户,但在浏览器控制台上收到401未经授权的错误。

这是我针对Spring Security Rest插件的主要配置:

grails.plugin.springsecurity.userLookup.userDomainClassName = 'projmgmt.Person'
grails.plugin.springsecurity.userLookup.authorityJoinClassName = 'projmgmt.security.PersonRole'
grails.plugin.springsecurity.authority.className = 'projmgmt.security.Role'
grails.plugin.springsecurity.securityConfigType = 'InterceptUrlMap'
grails.plugin.springsecurity.interceptUrlMap = [
'/': ['permitAll'],
'/assets/**': ['permitAll'],
'/partials/**': ['permitAll'],
'/api/**': ['permitAll'],
'/auth/api/**': ['permitAll'],
'/person/**': ['permitAll'],
'/**': ['isFullyAuthenticated()']
]

grails.plugin.springsecurity.rememberMe.persistent = false
grails.plugin.springsecurity.rest.login.useJsonCredentials = true
grails.plugin.springsecurity.rest.login.endpointUrl = '/auth/api/login'
grails.plugin.springsecurity.rest.logout.endpointUrl = '/auth/api/logout'
grails.plugin.springsecurity.rest.token.storage.useGorm = true
grails.plugin.springsecurity.rest.token.storage.gorm.tokenDomainClassName = 'projmgmt.security.AuthenticationToken'
grails.plugin.springsecurity.rest.token.storage.gorm.tokenValuePropertyName = 'token'
grails.plugin.springsecurity.rest.token.storage.gorm.usernamePropertyName = 'username'

grails.plugin.springsecurity.filterChain.chainMap = [
'/auth/api/**': 'JOINED_FILTERS,-exceptionTranslationFilter,-authenticationProcessingFilter,-securityContextPersistenceFilter', // Stateless chain
'/api/**': 'JOINED_FILTERS,-exceptionTranslationFilter,-authenticationProcessingFilter,-securityContextPersistenceFilter', // Stateless chain
'/**': 'JOINED_FILTERS,-restTokenValidationFilter,-restExceptionTranslationFilter' // Traditional chain
]

我通过angularjs $ http服务登录的电话:
$http.post('auth/api/login', { username: $scope.authData.username, password:     $scope.authData.password }, getAuthenticateHttpConfig).
success(function (data) {

$rootScope.isAuthenticated = true;
$rootScope.currentUser = data.username;
setLocalToken(data.token);
authService.loginConfirmed({}, function (config) {
if (!config.headers["X-Auth-Token"]) {
console.log('X-Auth-Token not on original request; adding it');
config.headers["X-Auth-Token"] = getLocalToken();
}
return config;
});
}).
error(function (data) {
console.log('login error: ' + data);
$rootScope.$broadcast('event:auth-loginFailed', data);
});

错误:
 POST http://localhost:8080/projmgmt_server/auth/api/login 401 (Unauthorized) 

有什么建议么?

最佳答案

解决了....

启用 Debug模式后..我开始知道 Spring 安全性是残疾人。.因此,在查看了我的人员类别后,我发现我缺少以下属性:

boolean enabled = true
boolean accountExpired
boolean accountLocked
boolean passwordExpired

因此,添加它们后,问题就解决了。

关于angularjs - 在Grails应用中使用Spring Security Rest插件调用登录时出现401未经授权的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24228138/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com