相关疑难解决方法(0)

Spring Boot将HTTP重定向到HTTPS

对于基于Spring Boot的应用程序,我在application.properties上配置了ssl属性,请参阅我的配置:

server.port=8443
server.ssl.key-alias=tomcat
server.ssl.key-password=123456
server.ssl.key-store=classpath:key.p12
server.ssl.key-store-provider=SunJSSE
server.ssl.key-store-type=pkcs12
Run Code Online (Sandbox Code Playgroud)

我在Application.class上添加了连接,就像

@Bean
public EmbeddedServletContainerFactory tomcatEmbeddedServletContainerFactory() {
    final TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();
    factory.addAdditionalTomcatConnectors(this.createConnection());
    return factory;
}

private Connector createConnection() {
    final String protocol = "org.apache.coyote.http11.Http11NioProtocol";
    final Connector connector = new Connector(protocol);

    connector.setScheme("http");
    connector.setPort(9090);
    connector.setRedirectPort(8443);
    return connector;
}
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试以下时

http://127.0.0.1:9090/
Run Code Online (Sandbox Code Playgroud)

重定向到

https://127.0.0.1:8443/
Run Code Online (Sandbox Code Playgroud)

没有执行.谁遇到过类似的问题?

java https redirect http spring-boot

33
推荐指数
7
解决办法
5万
查看次数

如何在我在Spring ElasticBeanstalk和Nginx上使用OAuth2的Spring Boot应用程序上强制使用SSL?

我正在尝试使用参考文档强制使用SSL

https://docs.spring.io/spring-boot/docs/current/reference/html/howto-security.html#howto-enable-https

但是,我已经有了

@Configuration
class WebSecurityConfiguration  {
Run Code Online (Sandbox Code Playgroud)

当我添加extends WebSecurityConfigurerAdapter,甚至不添加时,protected void configure(HttpSecurity http)对非Oauth2页面的请求将被无/home/方向重定向/login.它适用于属性设置.只需通过扩展类extends WebSecurityConfigurerAdapter打破应用程序.OAuth2还有其他不相关的路由.我在设置Oauth2之前已经看到过这种非确定性的随机行为.

这是WebSecurityConfiguration班级的概要.

@Configuration
class WebSecurityConfiguration {

    @Autowired
    UserMapper userMapper;

    @Bean
    PasswordEncoder passwordEncoder() {

    @Bean
    protected UserDetailsService userDetailsService() {
Run Code Online (Sandbox Code Playgroud)

就是这样.

我试着添加一个Nginx配置来重定向到SSL,在这个答案/sf/answers/3731769121/,但它没有用.它确实重定向到SSL,但我得到所有路径的404错误

HTTP状态404 - /home
类型状态报告
消息/ home
描述请求的资源不可用.
Apache Tomcat/8.0.47

tomcat 404

因此它强制使用SSL并访问Tomcat,但Spring Boot应用程序完全搞砸了.就好像ZIP中的WAR文件从未部署过一样.

参考:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-tomcat-proxy.html#java-tomcat-proxy-nginx

spring amazon-web-services spring-boot amazon-elastic-beanstalk

7
推荐指数
1
解决办法
253
查看次数