2011-03-23 19 views
7

Necesito restringir el acceso a una URL en particular, p. http://mydomain.com/this/is/the/url en mi servidor web usando Autenticación básica a través de Apache. Cualquier otra URL debe ser abiertamente accesible. He visto que se pueden agregar reglas específicas a los archivos usando:Uso de la autenticación básica (htaccess) para restringir el acceso a una URL específica

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

Mi problema es que todas las solicitudes se enrutan a los controladores utilizando mod-rewrite y por lo tanto no creo que pueda restringir el acceso mediante el archivo . ¡Cualquier idea sería de lo más útil!

Respuesta

0

No estoy seguro de si esto funcionaría/ayudaría, pero podría especificar algo en su aplicación 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

En archivo Htacess se debería poner:

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 

Para generar el archivo .htpasswd puede utilizar: - http://www.htaccesstools.com/htpasswd-generator/

Cuestiones relacionadas