Skip to content

Commit

Permalink
first commit
Browse files Browse the repository at this point in the history
  • Loading branch information
camechis committed Jan 19, 2012
0 parents commit 1c47811
Show file tree
Hide file tree
Showing 3 changed files with 75 additions and 0 deletions.
1 change: 1 addition & 0 deletions README
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Sample code to authenticate via ajax using Spring Security
26 changes: 26 additions & 0 deletions org/camechis/AjaxAuthenticationFailureHandler.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package org.camechis.security;

import java.io.IOException;
import java.io.Writer;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;

import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.authentication.AuthenticationFailureHandler;

public class AjaxAuthenticationFailureHandler implements AuthenticationFailureHandler {

@Override
public void onAuthenticationFailure(HttpServletRequest request,
HttpServletResponse response, AuthenticationException exception)
throws IOException, ServletException {
HttpServletResponseWrapper responseWrapper = new HttpServletResponseWrapper(response);
Writer out = responseWrapper.getWriter();
out.write("{ success: false, errors:{reason: 'Login failed. Try again.'}} ");
out.close();
}

}
48 changes: 48 additions & 0 deletions org/camechis/AjaxSuccessAuthenticationHandler.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package org.camechis;

import java.io.IOException;
import java.io.Writer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletResponseWrapper;

import org.codehaus.jackson.map.ObjectMapper;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.security.web.authentication.AuthenticationSuccessHandler;

public class AjaxSuccessAuthenticationHandler implements
AuthenticationSuccessHandler {

@Override
public void onAuthenticationSuccess(HttpServletRequest request,
HttpServletResponse response, Authentication authentication)
throws IOException, ServletException {
HttpServletResponseWrapper responseWrapper = new HttpServletResponseWrapper(
response);

Writer out = responseWrapper.getWriter();
Map<String, Object> authResponse = new HashMap<String, Object>();
authResponse.put("success", true);
authResponse.put("user", SecurityContextHolder.getContext()
.getAuthentication().getName());
List<String> authorities = new ArrayList<String>();
for (GrantedAuthority auth : SecurityContextHolder.getContext()
.getAuthentication().getAuthorities()) {
authorities.add(auth.getAuthority());
}
authResponse.put("authorities", authorities);
ObjectMapper mapper = new ObjectMapper();
mapper.writeValue(out, authResponse);
out.close();

}

}

0 comments on commit 1c47811

Please sign in to comment.