【发布时间】:2015-01-10 10:41:42
【问题描述】:
我正在尝试使用我在那儿获取的代码进行 Ajax 登录,这是:
@Controller
@RequestMapping("/login")
public class AjaxLoginController {
@Autowired
@Qualifier("AuthenticationManager")
AuthenticationManager authenticationManager;
@Autowired
SecurityContextRepository repository;
@Autowired
RememberMeServices rememberMeServices;
@RequestMapping(method=RequestMethod.GET)
public void login() {}
@RequestMapping(method=RequestMethod.POST)
@ResponseBody
public String performLogin(
@RequestParam("j_username") String username,
@RequestParam("j_password") String password,
HttpServletRequest request, HttpServletResponse response)
{
UsernamePasswordAuthenticationToken token =
new UsernamePasswordAuthenticationToken(username, password);
try {
Authentication auth = authenticationManager.authenticate(token);
SecurityContextHolder.getContext().setAuthentication(auth);
repository.saveContext(SecurityContextHolder.getContext(), request, response);
rememberMeServices.loginSuccess(request, response, auth);
return "{\"status\": true}";
} catch (BadCredentialsException ex) {
return "{\"status\": false, \"error\": \"Bad Credentials\"}";
}
}
}
这个例子有一个用于自动装配的 bean 的 xml 配置,但我的项目需要通过类配置来完成。我解决了第一个自动装配问题,将其添加到我的安全类配置中:
@Bean
public AuthenticationManager AuthenticationManager() throws Exception {
return authenticationManager();
}
现在我正在尝试使用 securityContextRepository 做某事,但我在论坛上找到的所有内容都是 xml 配置解决方案。 任何人都知道如何将这个类配置为 Bean 来解决这个问题?谢谢。
【问题讨论】:
标签: java ajax spring login spring-security