2010-12-21 34 views
1

我可以找到很多示例來說明如何配置URL以使用authc過濾器,但我找不到任何適合的簡單登錄頁面的示例。我正在使用Spring與Shiro集成,但我認爲這與我的問題沒有任何關係。Shiro FormAuthenticationFilter基本知識問題

從閱讀的文檔,我建立了我的濾清器廠是這樣的:

<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> 
     <property name="loginUrl" value="/login.jsp" /> 
     <property name="successUrl" value="/Reports.jsp" /> 
     <property name="securityManager" ref="securityManager" /> 
     <property name="filterChainDefinitionMap"> 
       <map> 
         <entry key="/ws/**" value="authc" /> 
         <entry key="/Reports.jsp" value="authc" /> 
         <entry key="/**" value="anon" /> 
       </map> 
     </property> 
</bean> 

我就不告訴你整個XML文件。我可以告訴大家,它拿起正確的過濾器,因爲當我這樣做:

> curl -v localhost:8080/factorlab-web/Reports.jsp 

我得到這樣的迴應:

< HTTP/1.1 302 Found 
< Expires: Thu, 01 Jan 1970 00:00:00 GMT 
< Set-Cookie: JSESSIONID=19gdgnmukynb3;Path=/factorlab-web 
< Location: http://localhost:8080/factorlab-web/login.jsp;jsessionid=19gdgnmukynb3 
< Content-Length: 0 
< Server: Jetty(6.1.21) 
< 

到目前爲止,一切都很好,對不對?但是,如果我提交用戶名和密碼,我應該得到Reports.jsp的內容,對吧?我不。如果我這樣做: *捲曲-v -d 「用戶名=演示&密碼=演示&了rememberMe =假」 http://localhost:8080/factorlab-web/Reports.jsp

我得到和以前一樣的反應:

< HTTP/1.1 302 Found 
< Expires: Thu, 01 Jan 1970 00:00:00 GMT 
< Set-Cookie: JSESSIONID=qnidg37bqo9f;Path=/factorlab-web 
< Location: http://localhost:8080/factorlab-web/login.jsp;jsessionid=qnidg37bqo9f 
< Content-Length: 0 
< Server: Jetty(6.1.21) 
< 

顯然,我很困惑無論是關於配置還是關於它應該如何工作。首先,任何人都可以告訴我,我應該從第二個捲曲命令中得到什麼,或者爲什麼我看不到我期望的?

其次,有沒有用的login.jsp(或類似),在那裏我可以看到,當用戶發生了什麼小樣本: * GOES明確到登錄頁面 *自動定向到登錄頁面(如日誌將您帶回原來的嘗試頁面)。 *從登錄頁面提交錯誤的用戶名和密碼。

回答

1

這是我的困惑:不要將您的憑據提交給loginUrl以外的任何其他憑據。所以,就我而言,我的login.jsp中的表單帖子不應該命名不同的端點。在上面的例子,而不是

curl -v -d "username=demo&password=demo&rememberMe=false" http://localhost:8080/factorlab-web/Reports.jsp 

我應該已經測試

curl -v -d "username=demo&password=demo&rememberMe=false" http://localhost:8080/factorlab-web/login.jsp 

將返回:

< HTTP/1.1 302 Found 
< Expires: Thu, 01 Jan 1970 00:00:00 GMT 
< Set-Cookie: JSESSIONID=1bug6rem2iecb;Path=/factorlab 
< Set-Cookie: rememberMe=deleteMe; Path=/factorlab; Expires=Mon, 16-May-2011 00:32:27 GMT 
< Location: http://localhost:8080/factorlab/Reports.jsp;jsessionid=1bug6rem2iecb 
< Content-Length: 0 
< Server: Jetty(6.1.21) 
<