如何获取内部Spring对象的实例

时间:2016-03-09 15:17:04

标签: spring grails spring-security

我有一个Grails应用程序,需要访问Spring的AuthenticationManager / ProviderManager实例,以便我可以将它提供给我的RemoteAuthenticationProviderImpl实例。 我在我的ApiController.groovy中有以下代码,我想在其中验证远程客户端,这些客户端正在登录另一个Grails应用程序并发送回授权的权限。

def remoteAuthentication() {
    def authHeader = request.getHeader('Authorization')
    if (authHeader && apiService.validate(authHeader)) {
        try {
            def remoteAuthenticationManager = new RemoteAuthenticationManagerImpl()
            def response = remoteAuthenticationManager.attemptAuthentication("admin", "password1")
        } catch (Exception) {}
        render response as JSON
    }
    response.status = 401
    render(status: 401, text: 'Failed to authenticate.')
}

RemoteAuthenticationManagerImpl记录在案here。可以看出,我需要提供一个AuthenticationManager。我想我需要通过bean注入它,但是我不能让它工作。

1 个答案:

答案 0 :(得分:0)

我自己解决了这个问题。我的错误是,我放了一个 <ref bean="authenticationManager" />代替sharedService进入我的resources.xml。