2010-09-21 46 views
0

我可以知道我們是否可以指定http-basic的url,這樣只有在進入特定頁面時才進行身份驗證?例如login.jsp?我不想使用表單登錄。spring http-basic

+0

你能說說你的問題嗎?你是否要求身份驗證,你想去一些頁面?並且你不想使用表單登錄 – 2010-09-21 12:11:16

+0

我使用的是spring 我可以用這個設置任何特定的url參數 – cometta 2010-09-21 13:29:28

回答

1

Spring採用的方法:

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

正如你看到的,在攔截的URL元素可以定義訪問控制下的資源。它有一個屬性模式您可以在其中定義此類資源的url模式(承認通配符)。

+0

不是很明確是否可以定義url = login.jsp做formlogin; url = login2.jsp,執行http-basic登錄? – cometta 2010-09-21 14:38:14

+0

是的,從Spring Security 3.1開始,您可以將「pattern」屬性添加到http元素,並且此配置將僅適用於匹配的url – 2010-09-21 16:35:50

1

無論您是否使用spring,您都可以通過配置Web應用程序來完成。

Configuring Security in Web Applications

你要應用安全約束的上至極資源在web.xml部署描述符的「安全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> 

而且,定義驗證方法爲基本,你也必須把它定義在web.xml文件,在login-config元素:

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

在登錄,配置您還可以定義登錄領域和其他選項。你可以在web.xml Deployment Descriptor Elements: login-config找到更多信息。

+0

不,我想要使用彈簧方法,它是 cometta 2010-09-21 13:29:51

+0

@cometta:對不起,原來的問題 – 2010-09-21 13:56:55

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> 
相關問題