Guest User

Shibboleth idP Custom Authentication RemoteUser

a guest
Jun 10th, 2015
449
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.62 KB | None | 0 0
  1. ----
  2. HttpServletRequestWrapper.groovy
  3. ----
  4.  
  5. package com.acme
  6.  
  7. import java.util.HashMap;
  8. import java.util.Map;
  9.  
  10. import javax.servlet.http.HttpServletRequest;
  11. import javax.servlet.http.HttpServletRequestWrapper;
  12.  
  13. final class HttpServletRequestAddHeader extends HttpServletRequestWrapper {
  14.  
  15.  private Map<String, String> customHeaderMap = new HashMap();
  16.  
  17.  public HttpServletRequestAddHeader(final HttpServletRequest request) {
  18.   super(request);
  19.  }
  20.  
  21.  public final void addHeader(final String name, final String value){
  22.   customHeaderMap[name] = value
  23.  }
  24.  
  25.  @Override
  26.  public final String getHeader(final String name) {
  27.   final String paramValue = customHeaderMap[name]
  28.   if (paramValue != null) {
  29.       return paramValue
  30.   }
  31.   super.getHeader(name);
  32.  }
  33.  
  34.  @Override
  35.  public final String getRemoteUser() {
  36.      getHeader('REMOTE_USER')
  37.  }
  38. }
  39. -----
  40. MyAuthenticationSuccessHandler.groovy
  41. -----
  42.  
  43. package com.acme
  44.  
  45. import javax.servlet.ServletException
  46. import javax.servlet.http.HttpServletRequest
  47. import javax.servlet.http.HttpServletResponse
  48. import javax.servlet.http.HttpSession
  49. import org.springframework.security.authentication.UsernamePasswordAuthenticationToken
  50. import org.springframework.security.core.Authentication
  51. import org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler
  52.  
  53. import org.slf4j.Logger;
  54. import org.slf4j.LoggerFactory;
  55. import org.springframework.security.core.context.SecurityContextHolder
  56. import org.springframework.security.core.userdetails.User
  57.  
  58. final class MyAuthenticationSuccessHandler extends SimpleUrlAuthenticationSuccessHandler {
  59.    private static final Logger logger = LoggerFactory.getLogger(ISEAuthenticationSuccessHandler.class);
  60.  
  61.     @Override
  62.     protected String determineTargetUrl(HttpServletRequest request,
  63.                HttpServletResponse response) {
  64.         String context = request.getContextPath();
  65.         String fullURL = request.getRequestURI();
  66.         String url = fullURL.substring(fullURL.indexOf(context)+context.length());
  67.         url;
  68.     }
  69.    
  70.     @Override
  71.     public void onAuthenticationSuccess(HttpServletRequest request,
  72.                HttpServletResponse response, Authentication authentication)
  73.       throws IOException, ServletException {
  74.  
  75.        User user = (User) authentication.principal
  76.        String username = user.username;
  77.  
  78.        String url = determineTargetUrl(request,response);
  79.  
  80.        HttpServletRequestAddHeader newRequest = new HttpServletRequestAddHeader(request)
  81.  
  82.        newRequest.addHeader('REMOTE_USER', username);
  83.        newRequest.getRequestDispatcher(url).forward(newRequest, response);
  84.     }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment