package org.fluxtream.core.auth;
import org.fluxtream.core.Configuration;
import org.fluxtream.core.cors.SimpleCORSFilter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.AuthenticationException;
import org.springframework.security.web.AuthenticationEntryPoint;
import org.springframework.stereotype.Component;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@Component
public class FlxRestApiEntryPoint implements AuthenticationEntryPoint {
@Autowired
Configuration env;
@Autowired
SimpleCORSFilter simpleCORSFilter;
@Override
public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException {
response.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
simpleCORSFilter.setCORSHeaders(request, response);
response.setContentType("application/json");
response.getWriter().write(String.format("{\"result\":\"KO\",\"message\":\"Access Denied. Please log in to your Fluxtream account (%s) to access this resource\"}",
env.get("homeBaseUrl")));
}
}