假設我有一個控制器,如:
public class MyController {
public String endpoint1() {...}
public String endpoint2() {...}
}
我想endpoint1在 Spring 中出于任何原因禁用。簡單地說,只需禁用它,使其無法訪問。因此,我不是在尋找在這種情況下回傳的方式和回應,或者如何保護該端點。只是想簡單地禁用端點,比如@Disabled上面的注釋。
uj5u.com熱心網友回復:
為什么不洗掉該方法上的映射注釋?
uj5u.com熱心網友回復:
試試這個簡單的方法:您可以定義一個屬性is.enable.enpoint1以靈活的方式打開/關閉您的端點。
如果您關閉端點,則回傳一個404或error頁面,這取決于您的情況。
@Value("${is.enable.enpoint1}")
private String isEnableEnpoint1;
public String endpoint1() {
if (!"true".equals(isEnableEnpoint1)) {
return "404";
}
// code
}
uj5u.com熱心網友回復:
您可以使用 @ConditionalOnExpression 注釋。
public class MyController {
@ConditionalOnExpression("${my.controller.enabled:false}")
public String endpoint1() {...}
public String endpoint2() {...}
}
在 application.properties 中,您指示控制器默認啟用
my.controller.enabled=true
ConditionalOnExpression 將您的屬性設定為 false,并且不允許訪問端點
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/481298.html
標籤:弹簧靴
上一篇:SpringBootAstraCassandra-在application.yml中指定了鍵空間,但仍然拋出錯誤“未指定鍵空間”
