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