我的Web配置聲明端口8080上三個連接器,http和https的端口8081和8082如何限制訪問特定端口的某些URL?
在我的servlet我想限制訪問某些網址模式,以一個特定的端口,如/ Admin的請求應該被拒絕,除非它在端口8082上。這很簡單,我可以檢查servlet服務方法中的端口號。
但我還需要能夠允許客戶更改端口。如果客戶希望僅在端口9000(而不是8083)上允許管理員請求,那麼該策略將失敗。
一種方法我能想到的是附加屬性在server.xml中增加了連接器和訪問它在servlet。這可能嗎?
爲了詳細說明,我想在我的servlet中加入類似下面的server.xml
<Connector port="9000" connectorType="admin"....
然後以某種方式得到綱領性這個如下。我知道getConnectorProperties
不存在,這只是一個例子。
if (request.getRequestURL().startsWith("/admin")) {
String connectorType = request.getConnectionProperties().get("connectorType");
if (! "admin".equals(connectorType)) {
// return unauthorized
有關我如何解決這個問題的其他建議?
背後發生了什麼?我們在這種情況下創建了兩個實例嗎? –
實例是什麼?仍然只有一個過程。但是兩個...服務:)。服務將連接器綁定到引擎。你可以進一步閱讀[他們的文檔](https://tomcat.apache.org/tomcat-7.0-doc/config/service.html) – yair