X-Git-Url: http://juplo.de/gitweb/?p=examples%2Ffacebook-app;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fyourshouter%2FSocialAuthenticationEntryPoint.java;fp=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Fyourshouter%2FSocialAuthenticationEntryPoint.java;h=4c3671c0f7a9b9a51c0acc996b044cf9c0ebc6b1;hp=0000000000000000000000000000000000000000;hb=8f6d3c83aa9651e593b57b3d47cfd50a4ae73661;hpb=ca351a3eb7442fbb183aa62e1a58cd85bc1f2ef7 diff --git a/src/main/java/de/juplo/yourshouter/SocialAuthenticationEntryPoint.java b/src/main/java/de/juplo/yourshouter/SocialAuthenticationEntryPoint.java new file mode 100644 index 0000000..4c3671c --- /dev/null +++ b/src/main/java/de/juplo/yourshouter/SocialAuthenticationEntryPoint.java @@ -0,0 +1,50 @@ +package de.juplo.yourshouter; + +import java.io.IOException; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.web.AuthenticationEntryPoint; +import org.springframework.stereotype.Service; + + +/** + * Specialized implementation of {@link AuthenticationEntryPoint}, that + * redirects to the social sign-in-page, to let the user decide to sign in or + * not. + * + * @author Kai Moritz + */ +@Service +public class SocialAuthenticationEntryPoint implements AuthenticationEntryPoint +{ + private static final Logger LOG = + LoggerFactory.getLogger(SocialAuthenticationEntryPoint.class); + + + /** + * {@inheritDoc} + * + * To commence the sign-in through the Graph-API, we only have to redirect + * to our already implemented sign-in-page. + */ + @Override + public void commence( + HttpServletRequest request, + HttpServletResponse response, + AuthenticationException exception + ) + throws + IOException, + ServletException + { + LOG.info( + "redirecting unauthenticated request {} to /signin.html", + request.getRequestURI() + ); + response.sendRedirect("/signin.html"); + } +}