加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – Grails spring-security-rest authentication deni

发布时间:2020-12-17 17:40:57 所属栏目:安全 来源:网络整理
导读:我已经和Grails工作了大约一个月了,而且我们目前正在使用angular,因此我们决定采用基于令牌的身份验证的REST方法. 不幸的是,在使用插件时,我遇到了一个我到目前为止无法解决的问题,我在尝试通过POST进行身份验证时收到的错误: Object {email: "test@test.te
我已经和Grails工作了大约一个月了,而且我们目前正在使用angular,因此我们决定采用基于令牌的身份验证的REST方法.

不幸的是,在使用插件时,我遇到了一个我到目前为止无法解决的问题,我在尝试通过POST进行身份验证时收到的错误:

Object {email: "test@test.test",password: "TEST"}

例外:

2014-11-17 15:25:29,509 [http-bio-8080-exec-8] DEBUG credentials.DefaultJsonPayloadCredentialsExtractor  - Extracted credentials from JSON payload. Username: test@test.test,password: [PROTECTED]
2014-11-17 15:25:29,518 [http-bio-8080-exec-8] DEBUG rest.RestAuthenticationFilter  - Trying to authenticate the request
2014-11-17 15:25:29,524 [http-bio-8080-exec-8] DEBUG authentication.ProviderManager  - Authentication attempt using org.springframework.security.authentication.dao.DaoAuthenticationProvider
2014-11-17 15:25:29,563 [http-bio-8080-exec-8] DEBUG rest.RestAuthenticationFilter  - Authentication failed: Dynamic method get<Artefact>Class(artefactName) requires a single String parameter

我想请注意,我没有使用默认的“用户名”登录,而是将其更改为“电子邮件”.这反映在我的配置中:

Config.groovy的Spring安全部分:

grails.plugin.springsecurity.active = true
grails.plugin.springsecurity.rejectIfNoRule = true
grails.plugin.springsecurity.fii.rejectPublicInvocations = false
grails.plugin.springsecurity.controllerAnnotations.staticRules = [
   '/**':               ['permitAll'],]
grails.plugin.springsecurity.rememberMe.persistent = false
grails.plugin.springsecurity.rest.token.rendering.usernamePropertyName = 'email'
grails.plugin.springsecurity.rest.token.rendering.authoritiesPropertyName = 'roles'
grails.plugin.springsecurity.userLookup.usernamePropertyName='email'

grails.plugin.springsecurity.rest.login.useJsonCredentials = true
grails.plugin.springsecurity.rest.login.failureStatusCode = 401
grails.plugin.springsecurity.rest.token.storage.useGorm = true
grails.plugin.springsecurity.rest.token.storage.gorm.tokenDomainClassName = 'AuthenticationToken'
grails.plugin.springsecurity.rest.token.storage.gorm.tokenValuePropertyName = 'token'
grails.plugin.springsecurity.rest.token.storage.gorm.usernamePropertyName = 'email'
grails.plugin.springsecurity.rest.login.active = true
grails.plugin.springsecurity.rest.login.usernamePropertyName = 'email'
grails.plugin.springsecurity.rest.login.passwordPropertyName = 'password'
grails.plugin.springsecurity.rest.login.endpointUrl = "/webapi/user/login"
grails.plugin.springsecurity.rest.logout.endpointUrl = "/webapi/user/logout"

这一行表明问题是由于REST插件调用了错误的函数,还是我错了?我检查了所有版本 – 我使用完全相同的Grails,Spring-Core和Spring-Rest版本:

Dynamic method get<Artefact>Class(artefactName) requires a single String parameter

谢谢!

解决方法

Is that your complete Config for Spring Security stuff? You’re not defining a grails.plugin.springsecurity.userLookup.userDomainClassName which could result in a call to DefaultGrailsApplication.getDomainClass(null) which would result in the error you are seeing

> Poundex

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读