Using Basic Authentication (htaccess) to restrict access to a specific URL

不打扰是莪最后的温柔 提交于 2019-12-08 17:26:33

问题


I need to restrict access to a particular URL, e.g. http://mydomain.com/this/is/the/url on my webserver using Basic Authentication through Apache. Any other URL should be openly accessible. I have seen that you can add specific rules to files using:

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

My problem is that all requests are routed to controllers using mod-rewrite and so I don't think that I can restrict access based on the file. Any ideas would be most helpful!


回答1:


In .htacess file you should put :

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

To generate .htpasswd file you can use : - http://www.htaccesstools.com/htpasswd-generator/




回答2:


I'm not sure if this would work/help, but you could specify something in your application 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>


来源:https://stackoverflow.com/questions/5404470/using-basic-authentication-htaccess-to-restrict-access-to-a-specific-url

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!