2017-10-18 60 views
0

我正在使用Grails 3和Spring Security Rest插件开发REST API。我使用MySQL 5.7.19作为我的后端。
该应用似乎工作正常,当我使用由Grails提供的默认后端时,我可以访问所有端点。
但是当我使用MySQL的我的后端试图访问/API /登录端点当我得到一个401错误
各种帮助将不胜感激。
以下是我的application.groovy文件,但我认为这里没有问题,因为使用Grails提供的默认后端时,该应用可以正常工作。尝试访问Grails 3和Spring Security Rest中的/ api/login时出现401错误

// Added by the Spring Security Core plugin: 
grails.plugin.springsecurity.userLookup.userDomainClassName = 'todo.User' 
grails.plugin.springsecurity.userLookup.authorityJoinClassName = 'todo.UserRole' 
grails.plugin.springsecurity.authority.className = 'todo.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'] 
] 

回答

0

您试图访问端点/ API /登录这表明你正在试图实现对REST春季安全,你是如何调用这个终点?我的意思是你想通过浏览器访问它?尝试访问邮件请求中的邮递员。另外在机身经过必需的JSON像这样

{ “用户名”:“someusername”, “密码”:“somepassword” }

显然someusername和somepassword需要与有效的用户来代替/密码组合存在于您的数据库中。

+0

我已经尝试使用邮递员,也试过在Linux中卷曲。 我试着用正确的标题以及正确的身份和正确的用户名和密码。正如我所提到的,问题是只有当我使用MySQL后端。使用Grails默认HSQL数据库时,login API调用可以正常工作。 –

相关问题