[心缘地方]同学录
首页 | 功能说明 | 站长通知 | 最近更新 | 编码查看转换 | 代码下载 | 常见问题及讨论 | 《深入解析ASP核心技术》 | 王小鸭自动发工资条VBA版
登录系统:用户名: 密码: 如果要讨论问题,请先注册。

[备忘]单点登录,CAS .NET Client 无限循环redirect loop的问题

上一篇:[备忘]excel里sum求和是0的解决办法~
下一篇:[备忘]mysql远程访问慢的问题

添加日期:2014/12/16 7:17:02 快速返回   返回列表 阅读4430次
从cas官网下载了.net client,按照样例配置了,

大概是这样:

<?xml version="1.0" encoding="UTF-8"?>
<!--
  有关如何配置 ASP.NET 应用程序的详细信息,请访问
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->

<configuration>  
  <configSections>  
    <section name="casClientConfig" type="DotNetCasClient.Configuration.CasClientConfiguration, DotNetCasClient"/>  
  </configSections>  
  <appSettings/>  
  <connectionStrings/>  
  <casClientConfig  
    casServerLoginUrl="http://localhost:8080/cas/login"  
    casServerUrlPrefix="http://localhost:8080/cas"  
    serverName="http://localhost:8000/sd"  
    ticketValidatorName="CAS20"  
    singleSignOut="true"  
    serviceTicketManager="CacheServiceTicketManager"  
    redirectAfterValidation="true"  />  
  <system.web>  
<machineKey validationKey="AutoGenerate,IsolateApps" decryptionKey="AutoGenerate,IsolateApps" validation="3DES" decryption="3DES"/>
    <compilation debug="true">  
    </compilation>  
    <authentication mode="Forms">  
      <forms loginUrl="http://localhost:8080/cas/login" timeout="30" defaultUrl="~/index.aspx" cookieless="UseCookies" slidingExpiration="true"/>  
    </authentication>  
    <authorization>  
      <deny users="?" />  
    </authorization>  
    <httpModules>  
      <add name="DotNetCasClient" type="DotNetCasClient.CasAuthenticationModule,DotNetCasClient"/>  
    </httpModules>  
  </system.web>  
  <system.webServer>  
    <validation validateIntegratedModeConfiguration="false"/>  
    <modules>  
      <remove name="DotNetCasClient"/>  
      <add name="DotNetCasClient" type="DotNetCasClient.CasAuthenticationModule,DotNetCasClient"/>  
    </modules>  
  </system.webServer>  
</configuration>  



访问时,会跳转到统一login页面,但是登录后,返回后,就开始无限跳转,即recirect loop,

搜了N久,

http://jasig.275507.n4.nabble.com/CAS-NET-Client-Redirect-Loop-and-Attributes-td4661112.html

这个貌似有些帮助。

就是把singleSignOut改成false,
把serviceTicketManager="CacheServiceTicketManager" 去掉,
不过貌似第一次没问题,第二次还是死循环。
===============================================================
后来发现,tomcat控制台CentralAuthenticationServiceImpl.java抛了个异常,

就进去看了看,晕~~

原来,是因为我改了服务端的CentralAuthenticationServiceImpl.java,

子系统验证ticket时,我在服务端检查了当前用户是否有权限,没权限我就扔出个TicketValidationException,

参考这个:

http://www.mytju.com/classcode/news_readNews.asp?newsID=524


但之前试验是没问题的,没权限客户端会抓到异常,跳到Login页面。(客户端我也改了)

没想到,在.NET client里,这个异常会导致无限跳转呢~~奇怪~

我深究了,.net也不懂,直接在数据库里加权限,问题解决~~~~

晕死~~一直以为是.net client有问题呢,气鼓鼓的,咋搜也解决不了,

原来是自己的问题。
 

评论 COMMENTS
没有评论 No Comments.

添加评论 Add new comment.
昵称 Name:
评论内容 Comment:
验证码(不区分大小写)
Validation Code:
(not case sensitive)
看不清?点这里换一张!(Change it here!)
 
评论由管理员查看后才能显示。the comment will be showed after it is checked by admin.
CopyRight © 心缘地方 2005-2999. All Rights Reserved