当前位置: 首页 > 知识库问答 >
问题:

Spring BootOAuth2,使用Tomcat和nginx在验证后获得错误ERR_TOO_MANY_REDIRECTS

太叔逸春
2023-03-14

我有一个Spring Boot应用程序,它使用来自WSO2身份服务器的OAuth2身份验证。当我在Spring Tool Suit上运行aplication时,它起作用了,所以我可以在其中唱歌并使用我的网站。但是当我在Tomcat(9.0)上运行我的应用程序时,我尝试访问一个页面,并重定向到登录页面,当我尝试登录时,我得到错误ERR_TOO_MANY_REDIRECTS

错误示例:当我的spring boot应用程序在Tomcat上运行时,我试图访问html页面:https://domain/chat/example.html

如果用户没有经过身份验证,则重定向到登录页WSO2标识服务器:https://domain/is/authenticationendpoint/login.do

    null

这些页面返回错误err_too_many_redirects。

用户可以进行身份验证,但应用程序重定向并转到导致错误的循环,该循环位于URL 1、2、3、4之间。

Spring开机配置

@Controller
public class LoginController {

    @GetMapping("/oauth-login")
    public String getLoginPage(Model model) {

        return "redirect:/oauth2/authorization/wso2";
    }
}
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)//abilitar seguranca nos metodos
public class ConfigSecurity extends WebSecurityConfigurerAdapter {
    
   protected void configure(HttpSecurity http) throws Exception {

        http.authorizeRequests()
                .antMatchers("/oauth-login")
                .permitAll()
                .anyRequest()
                .authenticated()
                .and()
                .oauth2Login().loginPage("/oauth-login")
                .and()
                .logout().logoutUrl("/applogout");

    }
}
server.port=8443

spring.security.oauth2.client.registration.wso2.client-name=WSO2 Identity Server
spring.security.oauth2.client.registration.wso2.client-id=asdasd
spring.security.oauth2.client.registration.wso2.client-secret=asdasd
spring.security.oauth2.client.registration.wso2.redirect-uri=https://domain/chat/login/oauth2/code/wso2
spring.security.oauth2.client.registration.wso2.authorization-grant-type=authorization_code
spring.security.oauth2.client.registration.wso2.scope=openid

#Identity Server Properties
spring.security.oauth2.client.provider.wso2.authorization-uri=https://domain/is/oauth2/authorize
spring.security.oauth2.client.provider.wso2.token-uri=https://domain/is/oauth2/token
spring.security.oauth2.client.provider.wso2.user-info-uri=https://domain/is/oauth2/userinfo
spring.security.oauth2.client.provider.wso2.jwk-set-uri=https://domain/is/oauth2/jwks

当我运行一个。jar文件时,它可以工作,但当我在tomcat上运行一个。war文件时,它就不工作了。

共有1个答案

苍宜修
2023-03-14

经过多次研究,我发现了我的错误。我的配置是正确的,但是当我在Tomcat上运行我的Spring boot应用程序时,我必须配置我的应用程序以在它上运行,但是还有另一种方法,我以最简单的方式运行我的应用程序,我生成。jat并使用bellow命令执行

  java -jar myapp.jar

因此,我删除了Tomcat服务器来部署我的spring boot应用程序。

 类似资料:
  • 当我使用JAXB验证XML文件时,您能帮我获取所有错误的列表吗? 现在我已经实现了同样的代码。我已经通过对XML文件进行解组来实现代码。 如果XML文件中有任何错误,那么当我在当时解组XML文件时,我得到了异常,但在给出第一个异常后出现了异常,但我想要该XML文件所有错误的列表。这不应该在出现第一个错误后出现。 XSD文件: 验证事件处理程序类 } 事件严重性:FATAL\u错误消息:cvc复杂类

  • 错误: TypeError:无法读取未定义的LoginForm c:/reactjs/hello-world/src/components/accountbox/LoginForm.js的属性“state”:23 2023 value={this.state.input.email}^24 onchange={this.handlechange}25 class=“form-control”26

  • 我使用teraform-aws-lambda模块和terraform-aws-iam模块,下面是这些例子,但是我得到了验证异常错误(输出如下) https://github.com/terraform-aws-modules/terraform-aws-lambda/tree/master/examples/simplehttps://github.com/terraform-aws-module

  • 问题内容: 非常奇怪的错误。我使用的是http://developers.facebook.com/docs/authentication/。所以我创建了对fb的请求并传递redirect_uri。我在本地主机上使用测试站点。所以如果我通过 redirect_uri = http://localhost/test_blog/index.php 它工作正常,但如果我通过 redirect_uri =

  • 和许多其他人一样,我很兴奋地听到Mockito现在使用Android,并跟随本教程亲眼看到了它。一切似乎都很有趣,我开始将模拟解决方案纳入我的Android测试项目中。。。 但是,在设置我的应用程序的测试项目以利用、和jars时,我遇到了我的第一个测试用例的问题。事实上正是这个问题。我想要帮助的部分是; 我被告知,这“根本还不太管用”,因为堆栈跟踪意味着没有使用DexMaker jar——请参考此

  • 现在,我正在使用XSD进行XML验证。 由于我使用了SchemaFactory: 然后我尝试切换到apache xerces,得到这个错误(从导入xerces开始): 为什么在android studio中java.exe以值1退出