Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ----
- HttpServletRequestWrapper.groovy
- ----
- package com.acme
- import java.util.HashMap;
- import java.util.Map;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletRequestWrapper;
- final class HttpServletRequestAddHeader extends HttpServletRequestWrapper {
- private Map<String, String> customHeaderMap = new HashMap();
- public HttpServletRequestAddHeader(final HttpServletRequest request) {
- super(request);
- }
- public final void addHeader(final String name, final String value){
- customHeaderMap[name] = value
- }
- @Override
- public final String getHeader(final String name) {
- final String paramValue = customHeaderMap[name]
- if (paramValue != null) {
- return paramValue
- }
- super.getHeader(name);
- }
- @Override
- public final String getRemoteUser() {
- getHeader('REMOTE_USER')
- }
- }
- -----
- MyAuthenticationSuccessHandler.groovy
- -----
- package com.acme
- import javax.servlet.ServletException
- import javax.servlet.http.HttpServletRequest
- import javax.servlet.http.HttpServletResponse
- import javax.servlet.http.HttpSession
- import org.springframework.security.authentication.UsernamePasswordAuthenticationToken
- import org.springframework.security.core.Authentication
- import org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.security.core.context.SecurityContextHolder
- import org.springframework.security.core.userdetails.User
- final class MyAuthenticationSuccessHandler extends SimpleUrlAuthenticationSuccessHandler {
- private static final Logger logger = LoggerFactory.getLogger(ISEAuthenticationSuccessHandler.class);
- @Override
- protected String determineTargetUrl(HttpServletRequest request,
- HttpServletResponse response) {
- String context = request.getContextPath();
- String fullURL = request.getRequestURI();
- String url = fullURL.substring(fullURL.indexOf(context)+context.length());
- url;
- }
- @Override
- public void onAuthenticationSuccess(HttpServletRequest request,
- HttpServletResponse response, Authentication authentication)
- throws IOException, ServletException {
- User user = (User) authentication.principal
- String username = user.username;
- String url = determineTargetUrl(request,response);
- HttpServletRequestAddHeader newRequest = new HttpServletRequestAddHeader(request)
- newRequest.addHeader('REMOTE_USER', username);
- newRequest.getRequestDispatcher(url).forward(newRequest, response);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment