春天的http基础

时间:2010-09-21 11:04:16

标签: java spring spring-security

我可以知道我们可以为http-basic指定url,以便仅在进入特定页面时进行身份验证吗?示例login.jsp?我不想使用表单登录。

3 个答案:

答案 0 :(得分:1)

您可以通过配置Web应用程序来执行此操作,无论您是否使用spring。

Configuring Security in Web Applications

您将要应用安全性约束的资源在web.xml部署描述符的“security-constrant”元素中指定。例如:

<security-constraint>
     <web-resource-collection>
          <web-resource-name>SecureOrdersEast</web-resource-name>
          <description>
             Security constraint for
             resources in the orders/east directory
          </description>
          <url-pattern>/orders/east/*</url-pattern>
          <http-method>POST</http-method>
          <http-method>GET</http-method>
     </web-resource-collection>
     <auth-constraint>
          <description>
           constraint for east coast sales
          </description>
          <role-name>east</role-name>
          <role-name>manager</role-name>
     </auth-constraint>
     <user-data-constraint>
          <description>SSL not required</description>
          <transport-guarantee>NONE</transport-guarantee>
     </user-data-constraint>
</security-constraint>

并且,要将Auth方法定义为BASIC,您还必须在web.xml文件中的login-config元素中定义它:

<login-config>
  <auth-method>BASIC</auth-method>
</login-config>

在login-config中,您还可以定义登录领域和其他选项。您可以在web.xml Deployment Descriptor Elements: login-config找到更多信息。

答案 1 :(得分:1)

Spring方法:

<security:http>
    <security:http-basic></security:http-basic>
    <security:intercept-url method="POST" pattern="/mypage.jsp" access="ROLE_USER" />
</security:http>

如您所见,在 intercept-url 元素中,您可以在访问控制下定义资源。它有一个属性 模式 ,您可以在其中定义此类资源的网址格式(允许使用通配符)。

答案 2 :(得分:1)

您可以定义自己的过滤器并适当使用,而不是使用<security:http-basic>。例如

<bean id="springSecurityFilterChain" class="org.springframework.security.web.FilterChainProxy">
    <security:filter-chain-map path-type="ant">
        <security:filter-chain pattern="/login.jsp"        filters="formExceptionTranslationFilter"/>
        <security:filter-chain pattern="/login2.jsp"        filters="basicProcessingFilter"/>
    </security:filter-chain-map>
</bean>