程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Spring OAuth redirect_uri不使用https大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Spring OAuth redirect_uri不使用https?

开发过程中遇到Spring OAuth redirect_uri不使用https的问题如何解决?下面主要结合日常开发的经验,给出你关于Spring OAuth redirect_uri不使用https的解决方法建议,希望对你解决Spring OAuth redirect_uri不使用https有所启发或帮助;

在手动浏览配置类之后,我能够找到并添加以下内容,从而达到了目的…

security.oauth2.clIEnt.pre-established-redirect-uri=https://[application_host]/login
security.oauth2.clIEnt.registered-redirect-uri=https://[application_host]/login
security.oauth2.clIEnt.use-current-uri=false

我不认为没有更好的方法来解决强制httpS重定向URL的问题,但是此修复程序对我有用。

解决方法

我有一个包含Spring Security OAuth的Spring Boot 1.3.0应用程序,作为一种SSO集成。

问题在于,该应用程序在非SSL环境中运行,并且负载平衡器(F5)后面有一个非标准端口,该端口强制SSL,OAuth提供程序要求所有重定向URL都注册为https,但是Spring
OAuth客户端(自动(使用@EnabLeoAuthSso配置)将仅重定向到具有以下URL的OAuth提供程序&Hellip;

https:// [provider_host] / oauth / authorize?client_id = [redact]
&redirect_uri
= http:// [application_host] /
login
&response_type = code&scope =
[redact]&state = IpmyTe

请注意,返回的redirect_uri生成为http。即使F5会在返回途中将其强制为https,我们的OAuth提供程序也将不允许非SSL重定向URI。我该如何配置?

除了我的Spring Data JPA控制器外,这就是整个应用程序。

AppConfig.java

@SpringBootApplication(exclude = { HibernateJpaAutoConfiguration.class })
@EnableJpaRepositories
public class AppConfig extends SpringBootServleTinitializer {

    public static void main(final String... args) {
        SpringApplication.run(AppConfig.class,args);
    }

    @Autowired
    public Datasource datasource;

    @Bean(name = "entitymanagerFactory")
    public LocalContainerEntitymanagerFactoryBean getEntitymanagerFactoryInfo() {
        final LocalContainerEntitymanagerFactoryBean fac = new LocalContainerEntitymanagerFactoryBean();
        fac.setDatasource(datasourcE);
        fac.setJpaVendorAdapter(new HibernateJpaVendorAdapter());
        fac.setPackagesToScan("[redact]");

        final Properties props = new Properties();
        props.put("hibernate.dialect","org.hibernate.dialect.SQLServerDialect");
        props.put("hibernate.show_sql","true");
        props.put("hibernate.format_sql","true");
        fac.setJpaProperties(props);

        return fac;
    }

    @Bean(name = "transactionManager")
    public PlatformtransactionManager gettransactionManager() {
        final JpatransactionManager transactmngr = new JpatransactionManager();
        transactmngr.setEntitymanagerFactory(getEntitymanagerFactoryInfo().getObject());
        return transactmngr;
    }

}

SecurityConfig.java

@Configuration
@EnabLeoAuth2Sso
public class SecurityConfig {

}

application.properties

server.port=9916
server.contextPath=

server.use-forWARD-headers=true

security.oauth2.client.clientId=[redact]
security.oauth2.client.clientSecret=[redact]
security.oauth2.client.scope=[redact]
security.oauth2.client.accessTokenUri=https://[provider_host]/oauth/token
security.oauth2.client.userAuthorizationUri=https://[provider_host]/oauth/authorize
security.oauth2.resource.userInfoUri=https://[provider_host]/oauth/me
security.oauth2.resource.preferTokenInfo=false

logging.level.org.springframework=TRACE

大佬总结

以上是大佬教程为你收集整理的Spring OAuth redirect_uri不使用https全部内容,希望文章能够帮你解决Spring OAuth redirect_uri不使用https所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。