【发布时间】:2012-11-16 13:34:28
【问题描述】:
我一直在寻找一种通过 REST 控制器(URL 参数)对用户进行身份验证的方法。 最接近的做法如下:
@Controller
@RequestMapping(value="/api/user")
public class UserController extends BaseJSONController{
static Logger sLogger = Logger.getLogger(UserController.class);
@RequestMapping(value = "/login", method = RequestMethod.POST)
public @ResponseBody String login(@RequestParam(value="username") String user, @RequestParam(value="password") String pass) throws JSONException {
Authentication userAuth = new UsernamePasswordAuthenticationToken(user, pass);
MyCellebriteAuthenticationProvider MCAP = new MyCellebriteAuthenticationProvider();
if (MCAP.authenticate(userAuth) == null){
response.put("isOk", false);
}
else{
SecurityContextHolder.getContext().setAuthentication(userAuth);
response.put("isOk", true);
response.put("token", "1234");
}
return response.toString();
}
}
但是,这不会创建 cookie。 有什么想法或更好的方法来实现我想要实现的目标吗?
【问题讨论】:
-
如果您的目标是将会话信息保存到基于 cookie 的令牌中,您可能正在寻找 Remember-Me Authentication。
标签: spring rest authentication spring-mvc spring-security