2013-07-30 97 views
0

我正在使用Cas疊加方法。我不時遇到進入/ cas /服務/管理的問題。授權失敗/服務/管理

「 拒絕訪問 UsernameNotFoundException :: AAA 」

有時竟讓我在deployerConfigContext.xml裏我已經宣佈 「AAA」 的用戶。

<sec:user-service id="userDetailsService"> 
    <sec:user name="aaa" password="aaa" authorities="ROLE_ADMIN" /> 
</sec:user-service> 

什麼能導致這種不一致的行爲?從日誌中顯示出認證

摘錄去確定

2013-07-31 11:53:05,332 INFO [org.jasig.cas.authentication.AuthenticationManagerImpl] - <org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler successfully authenticated [username: aaa]> 
2013-07-31 11:53:05,333 INFO [org.jasig.cas.authentication.AuthenticationManagerImpl] - <Resolved principal aaa> 
2013-07-31 11:53:05,333 INFO [org.jasig.cas.authentication.AuthenticationManagerImpl] - <org.jasig.cas.authentication.[email protected]4b4bc1e authenticated aaa with credential [username: aaa].> 

回答

0

這聽起來像是用戶aaa是不是在你的認證處理程序可用。您提供的XML代碼僅授權該用戶使用該服務,但不允許該用戶對CAS進行身份驗證。

不一致可能是您的身份驗證處理程序(數據庫/ LDAP /內存中僅舉幾個)在身份驗證時不可用。

+0

一個有趣的想法。然後它強制另一個問題。爲什麼身份驗證處理程序[org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler在我的情況]可用於其他受保護的頁面? –

+0

如果我正在閱讀日誌,請右鍵https://gist.github.com/Alua-Kinzhebayeva/9f27aa1bc84126577e56,然後org.jasig.cas.authentication.handler.support.SimpleTestUsernamePasswordAuthenticationHandler處理認證。 –

+0

嗯,我不明白爲什麼用戶'QQ'不會驗證'QQ'的密碼。查看SimpleTestUsernamePasswordAuthentic ationHandler,它不會進行身份驗證的唯一方式是用戶名和密碼不匹配。 '如果(StringUtils.hasText(用戶名)&& StringUtils.hasText(密碼) && username.equals(getPasswordEncoder()。編碼(密碼))){ 日誌 的.debug( 「用戶[」 +用戶名 +「 ]已成功通過身份驗證。「); 返回true; }' – wickdawg