RESTful API身份验证和进一步的请求

时间:2014-12-06 22:49:25

标签: java angularjs rest authentication

我在java中编写了一个RESTful API,其中客户端必须创建一个帐户(POST到/ user)然后登录(POST到/ login)。

现在我正在使用AngularJS为Web浏览器创建一个前端。问题是,当我创建用户时,尝试登录并输入一些login-secured-url' s

401未经授权

似乎每个请求都应该单独进行身份验证,我是对的吗?

我做的步骤:

  1. POST给/用户创建用户
  2. POST到/ login登录用户
  3. 获取/ account / 1 /我的REST服务中的登录安全路径,返回401
  4. 当我编写REST服务时,我正在使用IntelliJ IDEA中的RESTful WebService测试客户端测试所有内容,而且它一直都在那里。

    解决这个问题的方法是什么?

    @ neo的 您有 RestAuthenticationSuccessHandler

    @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;
        }
    }
    

    我还有另一个课程,但是如果我添加了所有内容,帖子会变得太冗长,所以如果你(建议一个类名)需要以下任何代码,请告诉我: config classes list

0 个答案:

没有答案