如何使用grails中的xfire插件从服务中调用控制器操作?

时间:2011-08-11 09:09:52

标签: grails xfire

我有使用spring安全插件开发的grails应用程序。现在我需要使它成为Web服务所以安装了xfire plugin.Now我想拥有一个带有参数用户名和密码的方法的服务然后需要调用login controller auth action (spring security plugin生成),现在怎么办?可以从控制器调用服务,但如何从服务调用控制器操作?

预先感谢, Laxmi.p

1 个答案:

答案 0 :(得分:1)

您不应该从任何地方调用控制器操作 - 除了其他控制器操作。 请参阅此问题:Grails Invoke a controller method from a scheduled job

要以编程方式登录用户,您可以执行以下操作:

void login(String username, String password) {
    def authToken = new UsernamePasswordAuthenticationToken(username, password)
    def newauth = authenticationManager.authenticate(authToken)
    SecurityContextHolder.getContext().setAuthentication(newauth)
}