最近在开发一个项目,用的是spring boot+spring security cas,我的是cas client端,在开发过程中遇到一个问题,毫无头绪,跪求大神帮忙看下。下面是请求的过程,我项目配置的地址是https的请求,但是最后一步变成了http,SSL正式在haproxy上:
https://cas.client.com
|
https://cas.server.com/login?service=https%3A%2F%2Fcas.client.com%2Flogin
|
https://cas.client.com/login?ticket=ST-123456-SJDFSdgsdfd-js3-webapp-cas-server-com-001
|
http://cas.client.com/(最后这一步变成了http请求)
尝试过用三种方法解决:
1、在tomcat里面加ssl,请求是变成了https了,但是部署到生产报502 bad gateway;
2、spring security加配置.requiresChannel().anyRequest().requiresSecure(),但是一直报循环重定向的错误;
3、尝试重载接口来实现强制https,项目调试无法进入到重载的类。请教有人遇到过这种问题吗?你们是怎么解决的
https://cas.client.com
|
https://cas.server.com/login?service=https%3A%2F%2Fcas.client.com%2Flogin
|
https://cas.client.com/login?ticket=ST-123456-SJDFSdgsdfd-js3-webapp-cas-server-com-001
|
http://cas.client.com/(最后这一步变成了http请求)
尝试过用三种方法解决:
1、在tomcat里面加ssl,请求是变成了https了,但是部署到生产报502 bad gateway;
2、spring security加配置.requiresChannel().anyRequest().requiresSecure(),但是一直报循环重定向的错误;
3、尝试重载接口来实现强制https,项目调试无法进入到重载的类。请教有人遇到过这种问题吗?你们是怎么解决的
解决方案 »
- list集合转换JSON出异常
- hibernate多对一删除问题
- 在帮我看看我下的那错了谢谢了
- web在线编辑保存一个word文档
- 公司技术入股
- 急求,如何实现一个2级联动功能,java,ajax,dwr 都可以
- 求ERP系统开发流程文档
- 请教各位高手:我写了一个简单的读取数据的 JSP程序,程序运行到和数据库建立连接语句时发生如下错误,请各位指点~
- 请问如何在用smartupload上传文件时,在文件保存在硬盘以前,给文件更名?焦急中!
- *****为什么我的servlet找不到javax.servlet.*和javax.servlet.http.*
- 求助!shiro会话超时时间设置失效
- Netty的Websocket一直发送大数据,网络出现阻塞
import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.beans.factory.annotation.Value;@Configuration
public class MultiConnectionSupport {
@Value("${server.https.port}")
private int httpPort;
@Bean
public EmbeddedServletContainerCustomizer containerCustomizer() {
return new EmbeddedServletContainerCustomizer() {
@Override
public void customize(ConfigurableEmbeddedServletContainer container) {
if (container instanceof TomcatEmbeddedServletContainerFactory) {
TomcatEmbeddedServletContainerFactory containerFactory =
(TomcatEmbeddedServletContainerFactory) container;
Connector connector = new Connector(TomcatEmbeddedServletContainerFactory.DEFAULT_PROTOCOL);
connector.setPort(httpPort);
connector.setScheme("https");
containerFactory.addAdditionalTomcatConnectors(connector);
}
}
};
}
}