成功进行Java休息登录后,如何将成功返回给AngularJS?

时间:2017-06-15 11:37:17

标签: java angularjs rest



app.register.factory('AuthenticationService', ['Base64','$http','$cookieStore','$rootScope','$timeout',
	                                               function(Base64,$http,$cookieStore,$rootScope,$timeout){
		var service = {};
		
		service.Login= function(username,password,callback) {
			
			var encodedString = 'username=' + encodeURIComponent(username) + '&password=' + encodeURIComponent(password);
			var baseUrl = "https://localhost:450/rest/";
			$http({
				method:'POST',
				url:baseUrl + 'dns/loginResource',
				data:encodedString,
				headers: {'Content-Type' : 'application/x-www-form-urlencoded'}
			     
			}).success(function(response) {
				
				callback(response);
			});




我在前端方面有这个代码,它成功地将凭据发送到Path

@Path("/dns/loginResource")
@POST
@Produces("application/json")
@Consumes("application/x-www-form-urlencoded")
public String queryAuthenticationData(@FormParam("username") String USER_NAME, @FormParam("password") String PASS_WORD)
{


    Password HashPass = new Password();
    try {
        //PASS_WORD=HashPass.getSaltedHash(PASS_WORD);
        Login log = new Login(USER_NAME,PASS_WORD);
        ResultSet UserDetailsSet;
        System.out.println("queryAuthenticationData metodu içinde...");
        UserDetailsSet = log.connect();
    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }


    return "";

}

此代码也有效,它登录并将ResultSet返回给UserDetailsS​​et。

我的问题是如何与成功登录的前端代码进行通信(因此响应为真)。 另外,我如何将包含用户ID,用户名,密码的结果集信息发送到AngularJS代码。

1 个答案:

答案 0 :(得分:0)

使用HTTP状态代码,查看http://www.restapitutorial.com/httpstatuscodes.html处所有可用状态的列表。

在前端应用程序中,检查请求响应HTTP状态代码以处理不同的方案(例如,有效的身份验证请求将以200 OK状态响应,如果请求无效,则可以回复401 Unauthorized状态。

HTTP status responses可以使用以下方式设置:

 // respond with 200 OK
 return Response.ok(json, MediaType.APPLICATION_JSON).build();

 // respond with other status
 return Response.status(Status.NO_CONTENT).build();