# TRS IDS Servlet-Agent Application Config # TRS身份服务器Servlet应用代理配置文件: 采用传统的filter集成方式 # # Copyright(c): www.trs.com.cn # Last Modified: 2009-6-11 ## 注意事项: # 1、配置项格式:名称=值 # 2、#开始的行表示注释 ## ##是否使用IDS的SSO流程,true或者false。 ##默认为true,如果设为false,Agent中的Filter将会停止过滤应用所有的请求。 sso.on=true ## 连接属性 #是否使用HTTP协议的方式与IDS连接。如果此处填写true,那么Agent会优先使用HTTP通道的方式与IDS进行连接,idm.server.*的配置项所配置的参数会自动失效 protocol.http=true protocol.http.url=http://gzdev.devdemo.trs.net.cn/ids/protocol #所要连接IDS的IP(或主机). 必填. idm.server.host = 172.17.35.153 #所要连接IDS的后台SSLServer端口.必填.如果不填默认为2005. idm.server.port = 2005 #创建socket数 idm.sockets.amount = 5 #socket超时 #soTimeout = 30000 # 从空闲Socket队列中取出一个Socket的最大间隔(毫秒, ms), 有效值3000-30000之间, 默认为15000 #socket.dispatchWaitMillis=15000 #使用IBM JDK时在JSSE可能会遇到问题, 此时可采用如下配置(如果使用"socketType=plain"则必须在IDS端也配置"socketType=plain") socketType=plain #socketType=dummySSL ## 协作应用属性 #协作应用名. 必填, 并且必须和在所要连接IDS上注册的协作应用名保持一致. #要求:2~80个字符、不允许使用中文、全角字符、' " \ / : ; * ? < > | % & # + 空格 下划线等特殊字符; agent.name = wcm-gov #是否允许匿名访问, y为允许, 否则为不允许. allow.anonymous = n #是否是前后端分离的应用 isFrontBack.Fl = y #[名称] coAppActor.className #[作用] 协作应用实现的IDS回调接口的类名称(包括包名的类名), #[要求] 必填,根据实际情况填写。 #[示例] coAppActor.className = com.trs.idm.client.DemoActor #[特例] 如果第三方协作应用采用提供page页面的集成方式,则actor为: # coAppActor.className = com.trs.idm.client.DemoActor #[参考] TRS BBS实现的IDS回调接口的类名称: # coAppActor.className = com.trs.idm.coappsupport.bbs.BBSActor # TRS CIS实现的IDS回调接口的类名称: # coAppActor.className = com.trs.idm.coappsupport.cis.CISActor # TRS CDS(Demo应用)实现的IDS回调接口的类名称 # coAppActor.className = com.trs.cds.ids.app.CDS4IDSWebCoAppActor # TRS CDS(管理台)实现的IDS回调接口的类名称 # coAppActor.className = com.trs.cds.ids.admin.CDSAdmin4IDSWebCoAppActor # TRS WCM v5.1实现的IDS回调接口的类名称 # coAppActor.className = com.trs.idm.coappsupport.wcm.WCM51Actor # TRS WCM v5.2实现的IDS回调接口的类名称 # coAppActor.className = com.trs.presentation.ids.WCM52Actor coAppActor.className = com.trs.presentation.ids.IDSActor #[名称] # loginAction.uri #[作用] # 协作应用原有登录页面上的form action链接. #[要求] # 必填。当存在多个值时用英文的逗号分隔开。 # 具体配置规范如下: # 从应用上下文开始(不包括上下文),采用后缀匹配方式进行判断,允许携带参数匹配. #[示例] # 比如用户登录POST的URI为/do_login.jsp, # 如:
# 那么loginAction.uri参数需要配置为/do_login.jsp,表示后缀匹配所有以/do_login.jsp结尾的URL #[参考] # 存在多个值时:loginAction.uri=/login.jsp,/login2.jsp,/admin/login_new.jsp # TRS CDS的自有登录页面的form action链接: loginAction.uri = /login # TRS CIS的自有登录页面的form action链接: loginAction.uri = /login.jsp # TRS BBS的自有登录页面的form action链接: loginAction.uri = /UserLogin # TRS WCMv6的自有登录页面的form action链接: loginAction.uri = /login.jsp loginAction.uri = /security/login #[名称] # loginAction.uri.matchPattern #[作用] # 判断一个请求的URI是否为loginAction.uri的判定方式 #[要求] # 可以不填,不填时,默认为startWith # # 可以填写的值有: # startWith:前缀匹配方式。 # endWith:后缀匹配方式 # contains:包含模式 #[示例] # 假设 loginAction.uri=/do_login.jsp, # 采用startWith:请求/do_login.jsp?param=aaa时,认为是匹配的;请求/user/do_login.jsp时,认为是不匹配的。 # 采用endWith,请求/user/do_login.jsp和do_login.jsp时,认为是匹配的;请求/user/do_login.jsp?param=aaa时,认为是不匹配的。 # 采用contains,如果loginAtion.uri配为 do_login.jsp时,只要URI中包含了do_login.jsp,则认为是匹配的 #[版本]仅当Agent版本大于79619(2012年5月30日)的版本时,可以使用这个配置项 loginAction.uri.matchPattern=startWith #loginAction.uri.matchPattern=endWith #loginAction.uri.matchPattern=contains #[名称] loginAction.method #[作用] 协作应用原有登录的提交方式,分为GET和POST(不区分大小写). # 该参数主要是针对同一登录请求URL,根据提交方式判断是否为登录请求的情况。 #[要求] 可以不填 ,不填时,默认为GET #[示例] loginAction.method = GET #[参考] 假设原应用中,以POST方式访问index.jsp为登录请求,那么需要这样配置: # loginAction.uri = /index.jsp # loginAction.method = POST # 此时,以GET方式访问index.jsp时,Filter将作为普通请求处理,不会作为登录的请求处理。 #[版本]仅当Agent版本大于75688(2012年2月23日)的版本时,可以使用这个配置项 #loginAction.method = GET #[名称] # logout.uri #[作用] # 协作应用原退出页面的的操作链接。 用于统一注销,如果填写错误则会影响单点注销功能。 #[要求] # 存在多个值时用英文的逗号分隔开。 # 具体配置规范如下: # 采用后缀匹配方式进行判断,uri从应用上下文开始(不包括上下文,即不包括应用的contextPath,如果应用调整了contextPath,这个配置项的值并不需要改变),允许携带参数匹配。 #[示例] # 假设原应用中,用户请求的注销URL为http://192.9.200.11/demo1/user/logout.jsp # 那么logout.uri参数必须配置为 /user/logout.jsp,表示后缀匹配所有以/user/logout.jsp结尾的URL #[参考] # 存在多个值时:logout.uri=/logout.jsp,/logout2.jsp,/admin/logout_new.jsp # TRS WCM, TRS CIS, TRS CDS的注销操作链接均为:logout.uri = /logout.jsp logout.uri = /security/logout ##################################################################### # 该应用web.xml中TRSIdSSSOFilter截获的URL中, 对哪些URL进行SSO控制. # 有两种配置方式, 对应两个配置项: ignoreUrl.prefix和processUrl.prefix. #方式1: 不进行SSO控制的链接. ignoreUrl.prefix =/opendata.do #方式2: 进行SSO控制的链接. #processUrl.prefix = # # 相关说明: #1. 两个配置项均采用前缀匹配方式(即"/admin"相当于"/admin*", 匹配所有以"/admin"开始的URL). #2. 两个配置项均可以配置多个值, 多个值间用","来分隔. 比如"/blogger/,/admin/" #3. 两个配置项如果都不配置, 则对所有被TRSIdSSSOFilter截获的URL都进行SSO. #4. 建议两项中只配置一项, 避免把问题复杂化. 除非有非常特殊的需要必须同时配置两项. #5. 如果两个配置项都配置了, 则对于重合部分的URL匹配, processUrl.prefix的优先级更高. #6. 更多疑问请参考产品文档的说明. # # 一些配置示例: #适用于TRS WCM v5.1: #ignoreUrl.prefix = /gov/kpi/login #适用于TRS CIS v2.5: #ignoreUrl.prefix = /admin/ #适用于TRS Blog(BSP): #processUrl.prefix = /blogger/,/admin/ #[名称] # http.headers.originalHost #[作用] # 在反向代理情况下使用。 # ● 如果反向代理设备/软件能够正确传递浏览器请求的原始地址,则不需要配置本配置项。 # ● 如果反向代理设备/软件无法正确传递浏览器请求的原始地址,而是将其通过HTTP Header传递,则需要配置本配置项。 # 通过本配置项,Agent能够从相应的HTTP Header中获取到原始的HTTP请求,从而保证在向IDS重定向的过程中,获取到正确的应用地址。 # # 对于最常使用的反向代理软件Apache: # ● 当httpd.conf中的ProxyPreserveHost置为On时,无需作此配置; # ● 当httpd.conf中的ProxyPreserveHost置为Off时,需要作此配置; # # #[参考] # 使用Apache反向代理时,取值为X-Forwarded-Host。 # 但是这个是一个非标准的HTTP头,不同的反向代理设备/软件,可能会有不同,具体需要咨询反向代理设备/软件的提供商。 #[版本] # Agent的版本:3.5.3500.65185(或以上) # IDS Server的版本:无要求 #[链接] # http://dev4.trs.net.cn/pages/viewpage.action?pageId=42565691 #http.headers.originalHost=X-Forwarded-Host ############################################################################################# ######################## 用户在IDS不存在时的控制逻辑开始 ################################### #[名称] sso.ifUserNotExistOnIDS.useLocalLoginLogic #[作用] 当用户在IDS上不存在时,是否尝试将用户名密码提交到应用自身执行登录的页面上进行登录 #[要求] 可以不填,默认是false。 #[示例] true 或者 false sso.ifUserNotExistOnIDS.useLocalLoginLogic=true #[名称] sso.ifUserNotExistOnIDS.selfLoginPage.action.url #[作用] 当用户在IDS上不存在时,将用户名密码提交到应用自身执行登录的页面 #[要求] 可以不填,默认是获取loginAction.uri第一个配置项。 #[示例] 比如应用登录POST的URI为/do_login.jsp, # 如: # 那么sso.ifUserNotExistOnIDS.selfLoginPage.action.url参数需要配置为/do_login.jsp,表示当用户在IDS上不存在时,将用户名密码提交到该页面进行登录。 sso.ifUserNotExistOnIDS.selfLoginPage.action.url = /login #[名称] sso.selfLoginPage.userName.field #[作用] 应用原来的登录页面上,用户名字段的名称。 # 如果希望用户在IDS上不存在时,仍能将用户名提交到应用自身执行登录的页面上,必须配置此项。 #[要求] 此配置项的值必须和应用登录表单上,用户名字段的值一致。如果此项不填写,默认值为 userName #[示例] 假设 应用原有登录页面上,有如下形式的表单: # # 则此配置项应当被配置为 coAppUserName sso.selfLoginPage.userName.field=userName #[名称] sso.selfLoginPage.password.field #[作用] 应用原来的登录页面上,密码字段的名称。 # 如果希望用户在IDS上不存在时,仍能将用户名提交到应用自身执行登录的页面上,必须配置此项。 #[要求] 此配置项的值必须和应用登录表单上,密码字段的值一致。如果此项不填写,默认值为 password #[示例] 假设 应用原有登录页面上,有如下形式的表单: # # 则此配置项应当被配置为 coAppPassword sso.selfLoginPage.password.field=password #[名称] sso.selfLoginPage.verificationCode.field #[作用] 应用原来的登录页面上,验证码字段的名称。 sso.selfLoginPage.verificationCode.field=Code ######################### 用户在IDS不存在时的控制逻辑结束 ####################################### ######################### 其它配置项的控制逻辑开始 ####################################### #[名称] cookie.domain.level #[作用] 应用匿名访问cookie标记的tld级别。 #[要求] 默认不需要做设置,在特殊情况才做设置。不填则cookie使用默认的domain。 #[示例] 常见场景为访问同一个应用,却可能存在不同的域名,比如,访问博客系统,却可能存在以下的访问url: # http://user1.blog.com, http://user2.blog.com # 如果不做tld设置的话,会导致每次访问都需要去身份服务器做验证,而这个是不必要的。 cookie.domain.level= #[名称] maxAllowAsyncSessionIdNumber #[作用] 同步通知中允许的链表最大数量 #[要求] 可以不填。不填默认是100000。 maxAllowAsyncSessionIdNumber=100000 #[名称] afterLoginOk.gotoUrl #[作用] 协作应用登录成功后跳转的页面,主要用于匿名应用自有登录页面 #[要求] 可以不填,默认登录后仍返回原页面,即从哪儿来回哪儿去。 #[示例] 匿名应用时,直接填写相对路径即可, 地址前不能加正、反斜杠,不能包含servlet上下文,如 afterLoginOk.gotoUrl = main.jsp,也可以配置为完整的访问路径(即绝对地址),如: afterLoginOk.gotoUrl = http://localhost:8080/demo/main.jsp #[示例] 非匿名应用时,一般不需要配置,如果一定要指定登录成功后跳转到固定地址,必须填写完整的访问路径(即绝对地址),如: afterLoginOk.gotoUrl = http://localhost:8080/demo/main.jsp #afterLoginOk.gotoUrl = http://localhost:8080/demo/main.jsp #[名称] afterLoginFail.gotoUrl #[作用] 协作应用登录失败后跳转的页面,主要用于匿名应用自有登录页面 #[要求] 可以不填,默认登录失败后仍返回原页面,即从哪儿来回哪儿去。 #[示例] 匿名应用时,直接填写相对路径即可, 地址前不能加正、反斜杠, 不能包含servlet上下文,如 afterLoginFail.gotoUrl = error.jsp,也可以配置为完整的访问路径(即绝对地址),如: afterLoginFail.gotoUrl = http://localhost:8080/demo/error.jsp #[示例] 非匿名应用时,不允许配置,需要跳转回到IDS全局登录页面 #[示例] afterLoginFail.gotoUrl = http://localhost:8080/demo/error.jsp #afterLoginFail.gotoUrl = http://localhost:8080/demo/error.jsp #[名称] afterLoginOk.needPostBack #[作用] 当协作应用的自有登录页面中,包含post参数时,是否在登录成功后,POST回原有执行登录的地址。 # 注意,当配置了afterLoginOk.gotoUrl后,将优先Post回这个地址;否则将POST回loginAction.uri所指定的地址 #[要求] 可以不填,默认登录后仍返回原页面。 #[示例] afterLoginOk.needPostBack = true afterLoginOk.needPostBack=false ######################### 其它配置项的控制逻辑结束 ####################################### ########################### 同域SSO专有配置项开始 ########################################## #[名称] sso.samedomain.ids_supported #[作用] IDS端是否支持同域SSO #[要求] 可以不填。如果不填,将以IDS服务器端的此配置项为准; 如果填写,不论是true或者false,都以本配置文件中的值为准。 #sso.samedomain.ids_supported=false #[名称] sso.samedomain.agent_supported #[作用] 应用端是否支持同域SSO #[要求] 可以不填。如果不填,将以IDS服务器端的此配置项为准; 如果填写,不论是true或者false,都以本配置文件中的值为准。 #sso.samedomain.agent_supported=false #[名称] sso.samedomain.cookie_domain #[作用] 同域SSO时的Cookie Domain #[要求] 可以不填。如果不填,将以IDS服务器端的此配置项为准; 如果填写,不论是true或者false,都以本配置文件中的值为准。 #sso.samedomain.cookie_domain=ids.com #[名称] sso.samedomain.cookie_path #[作用] 同域SSO时的Cookie path #[要求] 可以不填。如果不填,将以IDS服务器端的此配置项为准; 如果填写,不论是true或者false,都以本配置文件中的值为准。 #sso.samedomain.cookie_path=/ #[名称] sso.samedomain.ids_cookie_path #[作用] 同域SSO时的Cookie path。 # 一般情况下,这个配置项的值应当与 sso.samedomain.cookie_path一致。 #[要求] 可以不填。如果不填,将以IDS服务器端的此配置项为准; 如果填写,不论是true或者false,都以本配置文件中的值为准。 #sso.samedomain.ids_cookie_path=/ ssoUrl=http://gzdev.devdemo.trs.net.cn/ids/LoginServlet afterLoginOk.gotoUrl = http://gzdev.devdemo.trs.net.cn/govapp/ afterLoginOk.gotoType = redirect ############################################################################################### #END:配置文件结束