Authentication 在Grails中使用基本身份验证时遇到问题
我将CAS+LDAP与Spring Security一起用于Grails 2.2.3应用程序的用户身份验证。但是,我还想用这个应用程序创建一个简单的API,它需要不同的身份验证方法。我想对此使用基本身份验证。但是,将Authentication 在Grails中使用基本身份验证时遇到问题,authentication,grails,spring-security,basic-authentication,Authentication,Grails,Spring Security,Basic Authentication,我将CAS+LDAP与Spring Security一起用于Grails 2.2.3应用程序的用户身份验证。但是,我还想用这个应用程序创建一个简单的API,它需要不同的身份验证方法。我想对此使用基本身份验证。但是,将basicAuth添加到我的Config.groovy文件中不起作用,我收到以下错误: authentication.ProviderManager Authentication attempt using org.springframework.security.cas.authe
basicAuth
添加到我的Config.groovy
文件中不起作用,我收到以下错误:
authentication.ProviderManager Authentication attempt using org.springframework.security.cas.authentication.CasAuthenticationProvider
www.BasicAuthenticationFilter Authentication request for user: grantmc failed: org.springframework.security.authentication.ProviderNotFoundException: No AuthenticationProvider found for org.springframework.security.authentication.UsernamePasswordAuthenticationToken
我知道我使用的是正确的凭据,所以我不确定错误到底是怎么说的,或者我需要做什么来修复它。有人有什么想法吗
以下是resources.groovy中的设置:
initialDirContextFactory(DefaultSpringSecurityContextSource, "ldap://ldap.company.com:389") {
userDn = "CN=Admin,OU=Users,DC=company,DC=com"
password = "password"
}
ldapUserSearch(FilterBasedLdapUserSearch,
"OU=Users,DC=company,DC=com",
"employeeId={0}",
initialDirContextFactory) { }
ldapUserDetailsMapper(MyLdapUserDetailsContextMapper) { }
ldapAuthoritiesPopulator(DefaultLdapAuthoritiesPopulator,
initialDirContextFactory,
"ou=Groups,OU=Users,DC=company,DC=com") {
groupRoleAttribute = "cn"
groupSearchFilter = "member={0}"
rolePrefix = ""
searchSubtree = true
convertToUpperCase = true
ignorePartialResultException = true
}
userDetailsService(LdapUserDetailsService, ldapUserSearch, ldapAuthoritiesPopulator) {
userDetailsMapper = ref('ldapUserDetailsMapper')
}
以及我在config.groovy中的设置:
grails.plugins.springsecurity.cas.serverUrlPrefix = 'https://cas.company.com/cas'
grails.plugins.springsecurity.cas.loginUri = "/login"
grails.plugins.springsecurity.cas.serviceUrl = "${grails.serverURL}/j_spring_cas_security_check"
grails.plugins.springsecurity.providerNames = ['casAuthenticationProvider']
grails.plugins.springsecurity.defaultTargetUrl = '/'
grails.plugins.springsecurity.alwaysUseDefault = false
grails.plugins.springsecurity.useBasicAuth = true
grails.plugins.springsecurity.basic.realmName = "API"
grails.plugins.springsecurity.filterChain.chainMap = [
'/api/**': 'JOINED_FILTERS,-exceptionTranslationFilter',
'/**': 'JOINED_FILTERS,-basicAuthenticationFilter,-basicExceptionTranslationFilter'
]
grails.plugins.springsecurity.securityConfigType = 'InterceptUrlMap'
grails.plugins.springsecurity.interceptUrlMap = [
'/api/**': ['IS_AUTHENTICATED_FULLY'],
'/**': ['IS_AUTHENTICATED_FULLY']
]