2011-03-23 81 views
7

我需要限制對特定URL的訪問,例如, http://mydomain.com/this/is/the/url在我的網絡服務器上使用基本身份驗證通過Apache。任何其他URL都應公開訪問。我已經看到了你可以使用添加特定規則文件:使用基本身份驗證(htaccess)限制對特定URL的訪問

<Files "mypage.html"> 
    Require valid-user 
</Files> 

我的問題是,所有的請求路由到使用國防部重寫控制器,所以我不認爲我可以基於文件限制訪問。任何想法將是最有幫助的!

回答

0

我不確定這是否可行/幫助,但可以在應用程序web.xml中指定某些內容。

<security-constraint> 
    <display-name>Public access</display-name> 
    <web-resource-collection> 
     <web-resource-name>PublicPages</web-resource-name> 
     <description>Public</description> 
     <url-pattern>/servlet/*</url-pattern> 
    </web-resource-collection> 
    <user-data-constraint> 
     <transport-guarantee>NONE</transport-guarantee> 
    </user-data-constraint> 
    </security-constraint> 
    <security-constraint> 
    <display-name>Secured access</display-name> 
    <web-resource-collection> 
     <web-resource-name>SecuredPages</web-resource-name> 
     <description>Secured pages</description> 
     <url-pattern>/services/*</url-pattern> 
    </web-resource-collection> 
    <auth-constraint> 
     <description>General Access</description> 
     <role-name>*</role-name> 
    </auth-constraint> 
    <user-data-constraint> 
     <description>SSL not required</description> 
     <transport-guarantee>NONE</transport-guarantee> 
    </user-data-constraint> 
    </security-constraint> 
    <login-config> 
    <auth-method>BASIC</auth-method> 
    <realm-name>SecurePages</realm-name> 
    </login-config> 
    <security-role> 
    <description>General Access</description> 
    <role-name>*</role-name> 
    </security-role> 
1

在.htacess文件,你應該把:

AuthType Basic 
AuthName "Need to login" 
AuthUserFile .htpasswd file location ; 
Require user USER 

//AuthName is login prompt message 
//AuthUserFile is physical .htpasswd file location i.e. 
C:/xampp/htdocs/basic/.htpasswd 
//Require user is for a specific user i.e. the username you want to 
authenticate 

要生成htpasswd文件,你可以使用: - http://www.htaccesstools.com/htpasswd-generator/

相關問題