簡體   English   中英

Spring Boot未格式化的BadCredentialsException

[英]Spring boot unformatted BadCredentialsException

我有一個Spring Boot配置的服務。 通常,我在本地對其進行測試,然后將其作為.war部署到AWS ElasticBeansStalk上的Tomcat。

問題是:與我的開發環境(我在服務中嵌入了Tomcat,默認為spring boot)相比,AWS拋出的BadCredentialsException格式有所不同,例如:

如果我在本地拋出BadCredentials異常,則會收到JSON錯誤:

{
"timestamp": 1445622806489,
"status": 401,
"error": "Unauthorized",
"message": "Invalid user/password",
"path": "/user"
}

如果部署的服務遇到相同的錯誤,我會得到以下未格式化的混亂:

<!DOCTYPE html>
<html>
<head>
    <title>Apache Tomcat/8.0.23 - Error report</title>
    <style type="text/css">H1 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:22px;} H2 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:16px;} H3 {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;font-size:14px;} BODY {font-family:Tahoma,Arial,sans-serif;color:black;background-color:white;} B {font-family:Tahoma,Arial,sans-serif;color:white;background-color:#525D76;} P {font-family:Tahoma,Arial,sans-serif;background:white;color:black;font-size:12px;}A {color : black;}A.name {color : black;}.line {height: 1px; background-color: #525D76; border: none;}</style>
</head>
<body>
    <h1>HTTP Status 401 - Invalid user/password</h1>
    <div class="line"></div>
    <p>
        <b>type</b> Status report
    </p>
    <p>
        <b>message</b>
        <u>Invalid user/password</u>
    </p>
    <p>
        <b>description</b>
        <u>This request requires HTTP authentication.</u>
    </p>
    <hr class="line">
        <h3>Apache Tomcat/8.0.23</h3>
    </body>
</html>

我可以對Spring進行任何配置,以便即使導出到.war時也可以對所有錯誤消息強制使用前一種格式嗎?

該問題是由ErrorPageFilter引起的,在嵌入式環境中不需要使用,而在非嵌入式環境中使用,因此,當部署到.war時,它可能會導致該問題,具體取決於配置,如Spring Boot的錯誤報告所述。 github上。

解決該問題的一種方法是驗證是否已啟用默認的Spring Boot Security設置,刪除所有@EnableWebSecurity或將/error添加到應用程序的排除路徑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM