2013-08-27 222 views
1

我有這個問題:彈簧安全3.1.4後門

在一個java web-app(與spring和spring-security 3.1.4)有一個sso認證;這意味着用戶在他的電腦上登錄後即可進行身份驗證。

的配置是這樣的:

<sec:http> 
    <sec:logout /> 
    <sec:form-login login-page="/login.jsp" default-target-url="/" /> 
    <sec:anonymous username="guest" granted-authority="ROLE_GUEST" /> 
    <sec:custom-filter ref="headersFilter" after="SECURITY_CONTEXT_FILTER" /> 
    <sec:custom-filter ref="jaasFilter" after="SERVLET_API_SUPPORT_FILTER" /> 
</sec:http> 

和這工作(實際上login.jsp中不存在,因爲用戶已經登錄就像我上面說的)。

現在的問題是我想要一個「後門」,這意味着應該有一個登錄頁面供我和我的團隊測試和維護應用程序。

它應該是這樣的:

-I調用本地主機/ wepapp/myloginpage,我應該看到myloginpage.jsp(這個現在的工作);

- 我點擊「登錄」按鈕,我進入第二個「元素」,如果登錄是好的,那麼我應該重定向到「/」(這不起作用,我只是重定向「登錄」);

-with它下面的配置看來,我可以看到「/」沒有認證,也一樣,如果我把它(本地主機/ wepapp)

我想這個配置,但它不工作,我的意思是我可以看到「/」不進行認證,我重定向到登錄(我也嘗試過其他小的變化,但相同的結果,更多或更少):

<sec:http pattern="/myloginpage"> 
    <sec:logout /> 
    <sec:form-login login-page="/myloginpage" default-target-url="/" /> 
</sec:http> 

<sec:http pattern="/login"> 
    <sec:logout /> 
    <sec:form-login login-page="/login" default-target-url="/" /> 
    <sec:anonymous username="guest" granted-authority="ROLE_GUEST" /> 
    <sec:custom-filter ref="headersFilter" after="SECURITY_CONTEXT_FILTER" /> 
    <sec:custom-filter ref="jaasFilter" after="SERVLET_API_SUPPORT_FILTER" /> 
    </sec:http> 

我myloginpage.jsp:

<form action="login" method="POST"> 
    <table> 
    <tr> 
     <td> 
      Name 
     </td> 
     <td> 
      <input type="text" name="name"> 
     </td> 
    </tr> 
    ......... 
    </form> 

我也有myloginpage控制器:

@Controller 
public class Myloginpage { 

publicMyloginpage() { 

} 

@RequestMapping("/myloginpage") 
public String home() { 
      return "myloginpage"; 
} 

}

Thankx, 阿德里安

+0

*用戶一旦他登錄到他的電腦*就進行身份驗證。所以基本上沒有認證? – Bart

回答

0

您似乎缺少<intercept-url>標籤配置對某些路徑。

<sec:intercept-url pattern="/login*" access="IS_AUTHENTICATED_ANONYMOUSLY" /> 
<sec:intercept-url pattern="/secure/**" access="ROLE_USER" /> 
+0

Thankx快速回答!有一個SSO(單點登錄)身份驗證......這意味着:當用戶在他的電腦上登錄時,有一個應用程序獲取他的用戶名和密碼並創建一個傳遞給Java Web應用程序的請求標頭;請求標頭然後被所有過濾器傳遞,所以用戶在沒有登錄頁面的情況下被認證。我不應該/不能使用「攔截網址」。 Web應用程序沒有登錄頁面,所以請求標頭來自某處。我的任務是讓我們說「破解」這個系統,所以我必須準備好上面的「myloginpage」併發送我的請求 –

+0

我不確定我是否理解這裏的確切想法。你的意思是通過自定義標題來驗證訪問者的身份嗎? – Bart

+0

是的......我需要爲開發者創建一個頁面。客戶將始終使用sso認證系統。 –