java RESTful API身份验证和进一步请求
我用java编写了一个RESTful API,客户机必须在其中创建一个帐户(POST to/user),然后登录(POST to/login)
现在,我正在使用AngularJS为web浏览器创建一个前端。问题是,当我创建一个用户,尝试登录并输入一些登录安全的url时,我得到
401未经授权
似乎每个请求都应该单独进行身份验证,对吗
我做的步骤:
- POST to/user创建用户
- POST to/login哪个用户登录
- 进入/account/1/something,这是我的REST服务中的登录安全路径,它返回401
当我编写REST服务时,我在IntelliJ IDEA的RESTful WebService测试客户机下测试所有内容,现在仍然可以
解决这个问题的方法是什么
@Neo 这里有重新验证SuccessHandler
@Component("successHandler")
public class RestAuthenticationSuccessHandler extends SimpleUrlAuthenticationSuccessHandler {
private RequestCache requestCache = new HttpSessionRequestCache();
@Override
public void onAuthenticationSuccess(final HttpServletRequest request, final HttpServletResponse response, final Authentication authentication)
throws ServletException, IOException {
final SavedRequest savedRequest = requestCache.getRequest(request, response);
if (savedRequest == null) {
clearAuthenticationAttributes(request);
return;
}
final String targetUrlParameter = getTargetUrlParameter();
if (isAlwaysUseDefaultTargetUrl() || (targetUrlParameter != null && StringUtils.hasText(request.getParameter(targetUrlParameter)))) {
requestCache.removeRequest(request, response);
clearAuthenticationAttributes(request);
return;
}
clearAuthenticationAttributes(request);
}
public void setRequestCache(final RequestCache requestCache) {
this.requestCache = requestCache;
}
}
我还有另外一个类,但如果我全部添加,帖子会变得太冗长,所以如果你(建议一个类名)需要以下任何代码,请告诉我:
共 (0) 个答案