redirect_uri using http instead of https

前端 未结 4 1752
生来不讨喜
生来不讨喜 2020-12-16 04:44

I\'m using spring stack (Spring Boot 2.0.1.RELEASE) for creating a site that delegues user authentication/registration to Facebook via OAuth2. When I click the \"login with

4条回答
  •  醉话见心
    2020-12-16 05:38

    For me works this. I have set

    redirect-uri-template: "{baseUrl}/login/oauth2/code/{registrationId}"
    

    and wrote custom filter which chnge http to https

    @Slf4j
    public class LinkedInRewriteFilter extends OncePerRequestFilter {
    
    private static final String GET_PROTOCOL = "://.*";
    private static final String LINKED_IN = "linkedin";
    private static final String HTTPS = "https";
    
    @Value("${base-url}")
    private String baseUrl;
    
    @Value("${server.port}")
    private int serverPort;
    
    @Override
    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
        if (request.getRequestURL().toString().contains(LINKED_IN)) {
            request = new LinkedInHttpServletRequestWrapper(request);
        }
        filterChain.doFilter(request, response);
    }
    
    public class LinkedInHttpServletRequestWrapper extends HttpServletRequestWrapper {
    
        public LinkedInHttpServletRequestWrapper(HttpServletRequest request) {
            super(request);
        }
    
        @Override
        public String getScheme() {
            return baseUrl.replaceFirst(GET_PROTOCOL, StringUtils.EMPTY);
        }
    
        @Override
        public int getServerPort() {
            return HTTPS.equals(getScheme()) ? 443 : serverPort;
        }
    }
    

    }

提交回复
热议问题