Browse Source

git-svn-id: https://192.168.57.71/svn/lyggkj@98 1a6f6e3a-4066-fe46-b609-79c204482ece

ld_zhoutl 9 years ago
parent
commit
9771a4b08c
85 changed files with 5522 additions and 2 deletions
  1. 267 0
      sso/trunk/src/main/webapp/WEB-INF/cas-servlet.xml
  2. 108 0
      sso/trunk/src/main/webapp/WEB-INF/cas.properties
  3. 21 0
      sso/trunk/src/main/webapp/WEB-INF/classes/cas-theme-default.properties
  4. 75 0
      sso/trunk/src/main/webapp/WEB-INF/classes/default_views.properties
  5. 132 0
      sso/trunk/src/main/webapp/WEB-INF/classes/log4j.xml
  6. 108 0
      sso/trunk/src/main/webapp/WEB-INF/classes/messages.properties
  7. 71 0
      sso/trunk/src/main/webapp/WEB-INF/classes/messages_ar.properties
  8. 110 0
      sso/trunk/src/main/webapp/WEB-INF/classes/messages_ca.properties
  9. 103 0
      sso/trunk/src/main/webapp/WEB-INF/classes/messages_cs.properties
  10. 108 0
      sso/trunk/src/main/webapp/WEB-INF/classes/messages_de.properties
  11. 110 0
      sso/trunk/src/main/webapp/WEB-INF/classes/messages_es.properties
  12. 71 0
      sso/trunk/src/main/webapp/WEB-INF/classes/messages_fa.properties
  13. 112 0
      sso/trunk/src/main/webapp/WEB-INF/classes/messages_fr.properties
  14. 70 0
      sso/trunk/src/main/webapp/WEB-INF/classes/messages_hr.properties
  15. 103 0
      sso/trunk/src/main/webapp/WEB-INF/classes/messages_it.properties
  16. 72 0
      sso/trunk/src/main/webapp/WEB-INF/classes/messages_ja.properties
  17. 68 0
      sso/trunk/src/main/webapp/WEB-INF/classes/messages_mk.properties
  18. 65 0
      sso/trunk/src/main/webapp/WEB-INF/classes/messages_nl.properties
  19. 96 0
      sso/trunk/src/main/webapp/WEB-INF/classes/messages_pl.properties
  20. 64 0
      sso/trunk/src/main/webapp/WEB-INF/classes/messages_pt_BR.properties
  21. 69 0
      sso/trunk/src/main/webapp/WEB-INF/classes/messages_pt_PT.properties
  22. 107 0
      sso/trunk/src/main/webapp/WEB-INF/classes/messages_ru.properties
  23. 63 0
      sso/trunk/src/main/webapp/WEB-INF/classes/messages_sl.properties
  24. 68 0
      sso/trunk/src/main/webapp/WEB-INF/classes/messages_sv.properties
  25. 67 0
      sso/trunk/src/main/webapp/WEB-INF/classes/messages_tr.properties
  26. 66 0
      sso/trunk/src/main/webapp/WEB-INF/classes/messages_ur.properties
  27. 68 0
      sso/trunk/src/main/webapp/WEB-INF/classes/messages_zh_CN.properties
  28. 68 0
      sso/trunk/src/main/webapp/WEB-INF/classes/messages_zh_TW.properties
  29. 72 0
      sso/trunk/src/main/webapp/WEB-INF/classes/protocol_views.properties
  30. 24 0
      sso/trunk/src/main/webapp/WEB-INF/classes/saml_views.properties
  31. 193 0
      sso/trunk/src/main/webapp/WEB-INF/deployerConfigContext.xml
  32. 211 0
      sso/trunk/src/main/webapp/WEB-INF/login-webflow.xml
  33. 55 0
      sso/trunk/src/main/webapp/WEB-INF/logout-webflow.xml
  34. 56 0
      sso/trunk/src/main/webapp/WEB-INF/restlet-servlet.xml
  35. 26 0
      sso/trunk/src/main/webapp/WEB-INF/spring-configuration/README.txt
  36. 140 0
      sso/trunk/src/main/webapp/WEB-INF/spring-configuration/applicationContext.xml
  37. 39 0
      sso/trunk/src/main/webapp/WEB-INF/spring-configuration/argumentExtractorsConfiguration.xml
  38. 108 0
      sso/trunk/src/main/webapp/WEB-INF/spring-configuration/auditTrailContext.xml
  39. 108 0
      sso/trunk/src/main/webapp/WEB-INF/spring-configuration/cxf-spring-service.xml
  40. 29 0
      sso/trunk/src/main/webapp/WEB-INF/spring-configuration/filters.xml
  41. 44 0
      sso/trunk/src/main/webapp/WEB-INF/spring-configuration/log4jConfiguration.xml
  42. 36 0
      sso/trunk/src/main/webapp/WEB-INF/spring-configuration/propertyFileConfigurer.xml
  43. 44 0
      sso/trunk/src/main/webapp/WEB-INF/spring-configuration/securityContext.xml
  44. 47 0
      sso/trunk/src/main/webapp/WEB-INF/spring-configuration/ticketExpirationPolicies.xml
  45. 35 0
      sso/trunk/src/main/webapp/WEB-INF/spring-configuration/ticketGrantingTicketCookieGenerator.xml
  46. 47 0
      sso/trunk/src/main/webapp/WEB-INF/spring-configuration/ticketRegistry.xml
  47. 53 0
      sso/trunk/src/main/webapp/WEB-INF/spring-configuration/uniqueIdGenerators.xml
  48. 36 0
      sso/trunk/src/main/webapp/WEB-INF/spring-configuration/warnCookieGenerator.xml
  49. 98 0
      sso/trunk/src/main/webapp/WEB-INF/unused-spring-configuration/clearpass-configuration.xml
  50. 42 0
      sso/trunk/src/main/webapp/WEB-INF/unused-spring-configuration/lppe-configuration.xml
  51. 53 0
      sso/trunk/src/main/webapp/WEB-INF/unused-spring-configuration/mbeans.xml
  52. 60 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/authorizationFailure.jsp
  53. 26 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/casAccountDisabledView.jsp
  54. 26 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/casAccountLockedView.jsp
  55. 26 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/casBadHoursView.jsp
  56. 26 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/casBadWorkstationView.jsp
  57. 25 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/casConfirmView.jsp
  58. 26 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/casExpiredPassView.jsp
  59. 28 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/casGenericSuccess.jsp
  60. 37 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/casLoginMessageView.jsp
  61. 152 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/casLoginView.jsp
  62. 27 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/casLogoutView.jsp
  63. 26 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/casMustChangePassView.jsp
  64. 47 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/includes/bottom.jsp
  65. 50 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/includes/top.jsp
  66. 31 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/serviceErrorSsoView.jsp
  67. 26 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/serviceErrorView.jsp
  68. 26 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/errors.jsp
  69. 102 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/monitoring/viewStatistics.jsp
  70. 27 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/2.0/casProxyFailureView.jsp
  71. 27 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/2.0/casProxySuccessView.jsp
  72. 27 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/2.0/casServiceValidationFailure.jsp
  73. 38 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/2.0/casServiceValidationSuccess.jsp
  74. 27 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/3.0/casServiceValidationFailure.jsp
  75. 70 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/3.0/casServiceValidationSuccess.jsp
  76. 37 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/casPostResponseView.jsp
  77. 25 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/clearPass/clearPassFailure.jsp
  78. 28 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/clearPass/clearPassSuccess.jsp
  79. 32 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/oauth/confirm.jsp
  80. 21 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/openid/casOpenIdAssociationFailureView.jsp
  81. 30 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/openid/casOpenIdAssociationSuccessView.jsp
  82. 21 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/openid/casOpenIdServiceFailureView.jsp
  83. 21 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/openid/casOpenIdServiceSuccessView.jsp
  84. 25 0
      sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/openid/user.jsp
  85. 193 2
      sso/trunk/src/main/webapp/WEB-INF/web.xml

+ 267 - 0
sso/trunk/src/main/webapp/WEB-INF/cas-servlet.xml

@@ -0,0 +1,267 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:webflow="http://www.springframework.org/schema/webflow-config"
+       xmlns:p="http://www.springframework.org/schema/p"
+       xmlns:c="http://www.springframework.org/schema/c"
+       xmlns:util="http://www.springframework.org/schema/util"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+       http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
+       http://www.springframework.org/schema/webflow-config http://www.springframework.org/schema/webflow-config/spring-webflow-config-2.3.xsd">
+
+  <import resource="spring-configuration/propertyFileConfigurer.xml"/>
+
+  <!-- Theme Resolver -->
+  <bean id="themeResolver" class="org.jasig.cas.services.web.ServiceThemeResolver"
+        p:defaultThemeName="${cas.themeResolver.defaultThemeName}"
+        p:argumentExtractors-ref="argumentExtractors"
+        p:servicesManager-ref="servicesManager">
+    <property name="mobileBrowsers">
+      <util:map>
+        <entry key=".*iPhone.*" value="iphone"/>
+        <entry key=".*Android.*" value="iphone"/>
+        <entry key=".*Safari.*Pre.*" value="iphone"/>
+        <entry key=".*Nokia.*AppleWebKit.*" value="iphone"/>
+      </util:map>
+    </property>
+  </bean>
+
+  <!-- View Resolver -->
+  <bean id="viewResolver" class="org.springframework.web.servlet.view.ResourceBundleViewResolver"
+        p:order="0">
+    <property name="basenames">
+      <util:list>
+        <value>${cas.viewResolver.basename}</value>
+        <value>protocol_views</value>
+      </util:list>
+    </property>
+  </bean>
+  
+  <!-- Locale Resolver -->
+  <bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" p:defaultLocale="en" />
+
+  <bean id="localeChangeInterceptor" class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor"/>
+
+  <bean id="urlBasedViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"
+        p:viewClass="org.springframework.web.servlet.view.InternalResourceView"
+        p:prefix="/WEB-INF/view/jsp/"
+        p:suffix=".jsp"
+        p:order="1"/>
+  
+  <bean id="errorHandlerResolver" class="org.jasig.cas.web.FlowExecutionExceptionResolver"/>
+
+  <bean class="org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter"/>
+
+  <bean
+      id="handlerMappingC"
+      class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"
+      p:alwaysUseFullPath="true">
+    <property name="mappings">
+      <util:properties>
+        <prop key="/serviceValidate">serviceValidateController</prop>
+        <prop key="/proxyValidate">proxyValidateController</prop>
+        
+        <prop key="/p3/serviceValidate">v3ServiceValidateController</prop>
+        <prop key="/p3/proxyValidate">v3ProxyValidateController</prop>
+        
+        <prop key="/validate">legacyValidateController</prop>
+        <prop key="/proxy">proxyController</prop>
+        <prop key="/authorizationFailure.html">passThroughController</prop>
+        <prop key="/status">healthCheckController</prop>
+        <prop key="/statistics">statisticsController</prop>
+      </util:properties>
+    </property>
+    <!--
+     uncomment this to enable sending PageRequest events.
+     <property
+       name="interceptors">
+       <list>
+         <ref bean="pageRequestHandlerInterceptorAdapter" />
+       </list>
+     </property>
+      -->
+  </bean>
+
+  <bean id="passThroughController" class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>
+
+  <!-- login webflow configuration -->
+  <bean id="loginFlowHandlerMapping" class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping"
+        p:flowRegistry-ref="loginFlowRegistry" p:order="2">
+    <property name="interceptors">
+      <ref local="localeChangeInterceptor" />
+    </property>
+  </bean>
+
+  <bean id="loginHandlerAdapter" class="org.jasig.cas.web.flow.SelectiveFlowHandlerAdapter"
+        p:supportedFlowId="login" p:flowExecutor-ref="loginFlowExecutor" p:flowUrlHandler-ref="loginFlowUrlHandler" />
+
+  <bean id="loginFlowUrlHandler" class="org.jasig.cas.web.flow.CasDefaultFlowUrlHandler" />
+
+  <webflow:flow-executor id="loginFlowExecutor" flow-registry="loginFlowRegistry">
+    <webflow:flow-execution-attributes>
+      <webflow:always-redirect-on-pause value="false" />
+      <webflow:redirect-in-same-state value="false" />
+    </webflow:flow-execution-attributes>
+    <webflow:flow-execution-listeners>
+      <webflow:listener ref="terminateWebSessionListener" />
+    </webflow:flow-execution-listeners>
+  </webflow:flow-executor>
+
+  <webflow:flow-registry id="loginFlowRegistry" flow-builder-services="builder">
+    <webflow:flow-location path="/WEB-INF/login-webflow.xml" id="login" />
+  </webflow:flow-registry>
+
+  <!-- logout webflow configuration -->
+  <bean id="logoutFlowHandlerMapping" class="org.springframework.webflow.mvc.servlet.FlowHandlerMapping"
+        p:flowRegistry-ref="logoutFlowRegistry" p:order="3">
+    <property name="interceptors">
+      <ref local="localeChangeInterceptor" />
+    </property>
+  </bean>
+
+  <bean id="logoutHandlerAdapter" class="org.jasig.cas.web.flow.SelectiveFlowHandlerAdapter"
+        p:supportedFlowId="logout" p:flowExecutor-ref="logoutFlowExecutor" p:flowUrlHandler-ref="logoutFlowUrlHandler" />
+
+  <bean id="logoutFlowUrlHandler" class="org.jasig.cas.web.flow.CasDefaultFlowUrlHandler"
+        p:flowExecutionKeyParameter="RelayState" />
+
+  <webflow:flow-executor id="logoutFlowExecutor" flow-registry="logoutFlowRegistry">
+    <webflow:flow-execution-attributes>
+      <webflow:always-redirect-on-pause value="false" />
+      <webflow:redirect-in-same-state value="false" />
+    </webflow:flow-execution-attributes>
+    <webflow:flow-execution-listeners>
+      <webflow:listener ref="terminateWebSessionListener" />
+    </webflow:flow-execution-listeners>
+  </webflow:flow-executor>
+
+  <webflow:flow-registry id="logoutFlowRegistry" flow-builder-services="builder">
+    <webflow:flow-location path="/WEB-INF/logout-webflow.xml" id="logout" />
+  </webflow:flow-registry>
+
+  <webflow:flow-builder-services id="builder" view-factory-creator="viewFactoryCreator" expression-parser="expressionParser" />
+
+  <bean id="logoutConversionService" class="org.jasig.cas.web.flow.LogoutConversionService" />
+
+  <bean id="terminateWebSessionListener" class="org.jasig.cas.web.flow.TerminateWebSessionListener" />
+
+  <bean id="expressionParser" class="org.springframework.webflow.expression.spel.WebFlowSpringELExpressionParser"
+        c:conversionService-ref="logoutConversionService">
+    <constructor-arg>
+        <bean class="org.springframework.expression.spel.standard.SpelExpressionParser" />
+    </constructor-arg>
+  </bean>
+
+  <bean id="viewFactoryCreator" class="org.springframework.webflow.mvc.builder.MvcViewFactoryCreator">
+    <property name="viewResolvers">
+      <util:list>
+        <ref local="viewResolver"/>
+      </util:list>
+    </property>
+  </bean>
+  
+  <!--  CAS 2 Protocol service/proxy validation -->     
+  <bean id="abstractValidateController" class="org.jasig.cas.web.ServiceValidateController" abstract="true"
+        p:centralAuthenticationService-ref="centralAuthenticationService"
+        p:proxyHandler-ref="proxy20Handler"
+        p:argumentExtractor-ref="casArgumentExtractor"/>
+  
+  <bean id="proxyValidateController" parent="abstractValidateController"/>
+
+  <bean id="serviceValidateController" parent="abstractValidateController"
+        p:validationSpecificationClass="org.jasig.cas.validation.Cas20WithoutProxyingValidationSpecification"/>
+
+  <!--  CAS 3 Protocol service/proxy validation with attributes -->
+  <bean id="v3AbstractValidateController" parent="abstractValidateController" abstract="true"
+        p:successView="cas3ServiceSuccessView"
+        p:failureView="cas3ServiceFailureView" />
+        
+  <bean id="v3ProxyValidateController" parent="v3AbstractValidateController" />
+
+  <bean id="v3ServiceValidateController" parent="v3AbstractValidateController"
+        p:validationSpecificationClass="org.jasig.cas.validation.Cas20WithoutProxyingValidationSpecification"/>
+ 
+  <!--  CAS 1 legacy validation -->       
+  <bean id="legacyValidateController" parent="abstractValidateController"
+        p:proxyHandler-ref="proxy10Handler"
+        p:successView="cas1ServiceSuccessView"
+        p:failureView="cas1ServiceFailureView"
+        p:validationSpecificationClass="org.jasig.cas.validation.Cas10ProtocolValidationSpecification"/>
+
+  <bean id="proxyController" class="org.jasig.cas.web.ProxyController"
+        p:centralAuthenticationService-ref="centralAuthenticationService"/>
+
+  <bean id="statisticsController" class="org.jasig.cas.web.StatisticsController"
+        p:casTicketSuffix="${host.name}" c:ticketRegistry-ref="ticketRegistry" />
+
+  <bean id="logoutAction" class="org.jasig.cas.web.flow.LogoutAction"
+        p:servicesManager-ref="servicesManager"
+        p:followServiceRedirects="${cas.logout.followServiceRedirects:false}"/>
+
+  <bean id="frontChannelLogoutAction" class="org.jasig.cas.web.flow.FrontChannelLogoutAction"
+        c:logoutManager-ref="logoutManager"/>
+
+  <bean id="healthCheckController" class="org.jasig.cas.web.HealthCheckController"
+        p:healthCheckMonitor-ref="healthCheckMonitor"/>
+
+  <bean id="initialFlowSetupAction" class="org.jasig.cas.web.flow.InitialFlowSetupAction"
+        p:argumentExtractors-ref="argumentExtractors"
+        p:warnCookieGenerator-ref="warnCookieGenerator"
+        p:ticketGrantingTicketCookieGenerator-ref="ticketGrantingTicketCookieGenerator"/>
+
+  <bean id="authenticationViaFormAction" class="org.jasig.cas.web.flow.AuthenticationViaFormAction"
+        p:centralAuthenticationService-ref="centralAuthenticationService"
+        p:warnCookieGenerator-ref="warnCookieGenerator"
+        p:ticketRegistry-ref="ticketRegistry"/>
+
+  <bean id="authenticationExceptionHandler" class="org.jasig.cas.web.flow.AuthenticationExceptionHandler" />
+
+  <bean id="generateServiceTicketAction" class="org.jasig.cas.web.flow.GenerateServiceTicketAction"
+        p:centralAuthenticationService-ref="centralAuthenticationService"/>
+
+  <bean id="sendTicketGrantingTicketAction" class="org.jasig.cas.web.flow.SendTicketGrantingTicketAction"
+        p:centralAuthenticationService-ref="centralAuthenticationService"
+        p:ticketGrantingTicketCookieGenerator-ref="ticketGrantingTicketCookieGenerator"/>
+
+  <bean id="gatewayServicesManagementCheck" class="org.jasig.cas.web.flow.GatewayServicesManagementCheck"
+    c:servicesManager-ref="servicesManager" />
+
+  <bean id="serviceAuthorizationCheck" class="org.jasig.cas.web.flow.ServiceAuthorizationCheck"
+    c:servicesManager-ref="servicesManager" />
+
+  <bean id="generateLoginTicketAction" class="org.jasig.cas.web.flow.GenerateLoginTicketAction"
+        p:ticketIdGenerator-ref="loginTicketUniqueIdGenerator"/>
+
+  <bean id="messageInterpolator" class="org.jasig.cas.util.SpringAwareMessageMessageInterpolator"/>
+
+  <bean id="credentialsValidator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean"
+        p:messageInterpolator-ref="messageInterpolator"/>
+
+  <bean id="ticketGrantingTicketCheckAction" class="org.jasig.cas.web.flow.TicketGrantingTicketCheckAction"
+        c:registry-ref="ticketRegistry" />
+
+  <bean id="terminateSessionAction" class="org.jasig.cas.web.flow.TerminateSessionAction"
+        c:cas-ref="centralAuthenticationService"
+        c:tgtCookieGenerator-ref="ticketGrantingTicketCookieGenerator"
+        c:warnCookieGenerator-ref="warnCookieGenerator"/>
+</beans>

+ 108 - 0
sso/trunk/src/main/webapp/WEB-INF/cas.properties

@@ -0,0 +1,108 @@
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+server.name=http://localhost:8080
+server.prefix=${server.name}/cas
+# IP address or CIDR subnet allowed to access the /status URI of CAS that exposes health check information
+cas.securityContext.status.allowedSubnet=127.0.0.1
+
+
+cas.themeResolver.defaultThemeName=cas-theme-default
+cas.viewResolver.basename=default_views
+
+##
+# Unique CAS node name
+# host.name is used to generate unique Service Ticket IDs and SAMLArtifacts.  This is usually set to the specific
+# hostname of the machine running the CAS node, but it could be any label so long as it is unique in the cluster.
+host.name=cas01.example.org
+
+##
+# Database flavors for Hibernate
+#
+# One of these is needed if you are storing Services or Tickets in an RDBMS via JPA.
+#
+# database.hibernate.dialect=org.hibernate.dialect.OracleDialect
+# database.hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
+# database.hibernate.dialect=org.hibernate.dialect.HSQLDialect
+
+##
+# CAS Logout Behavior
+# WEB-INF/cas-servlet.xml
+#
+# Specify whether CAS should redirect to the specified service parameter on /logout requests
+# cas.logout.followServiceRedirects=false
+
+##
+# Single Sign-On Session Timeouts
+# Defaults sourced from WEB-INF/spring-configuration/ticketExpirationPolices.xml
+#
+# Maximum session timeout - TGT will expire in maxTimeToLiveInSeconds regardless of usage
+# tgt.maxTimeToLiveInSeconds=28800
+#
+# Idle session timeout -  TGT will expire sooner than maxTimeToLiveInSeconds if no further requests
+# for STs occur within timeToKillInSeconds
+# tgt.timeToKillInSeconds=7200
+
+##
+# Service Ticket Timeout
+# Default sourced from WEB-INF/spring-configuration/ticketExpirationPolices.xml
+#
+# Service Ticket timeout - typically kept short as a control against replay attacks, default is 10s.  You'll want to
+# increase this timeout if you are manually testing service ticket creation/validation via tamperdata or similar tools
+# st.timeToKillInSeconds=10
+
+##
+# Single Logout Out Callbacks
+# Default sourced from WEB-INF/spring-configuration/argumentExtractorsConfiguration.xml
+#
+# To turn off all back channel SLO requests set slo.disabled to true
+# slo.callbacks.disabled=false
+
+##
+# Service Registry Periodic Reloading Scheduler
+# Default sourced from WEB-INF/spring-configuration/applicationContext.xml
+#
+# Force a startup delay of 2 minutes.
+# service.registry.quartz.reloader.startDelay=120000
+# 
+# Reload services every 2 minutes
+# service.registry.quartz.reloader.repeatInterval=120000
+
+##
+# Log4j
+# Default sourced from WEB-INF/spring-configuration/log4jConfiguration.xml:
+#
+# It is often time helpful to externalize log4j.xml to a system path to preserve settings between upgrades.
+# e.g. log4j.config.location=/etc/cas/log4j.xml
+# log4j.config.location=classpath:log4j.xml
+#
+# log4j refresh interval in millis
+# log4j.refresh.interval=60000
+
+##
+# Password Policy
+#
+# Warn all users of expiration date regardless of warningDays value.
+password.policy.warnAll=false
+
+# Threshold number of days to begin displaying password expiration warnings.
+password.policy.warningDays=30
+
+# URL to which the user will be redirected to change the passsword.
+password.policy.url=https://password.example.edu/change

+ 21 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/cas-theme-default.properties

@@ -0,0 +1,21 @@
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+standard.custom.css.file=/css/cas.css
+cas.javascript.file=/js/cas.js

+ 75 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/default_views.properties

@@ -0,0 +1,75 @@
+### Login view (/login)
+
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+casLoginView.(class)=org.springframework.web.servlet.view.JstlView
+casLoginView.url=/WEB-INF/view/jsp/default/ui/casLoginView.jsp
+
+### Display login (warning) messages
+casLoginMessageView.(class)=org.springframework.web.servlet.view.JstlView
+casLoginMessageView.url=/WEB-INF/view/jsp/default/ui/casLoginMessageView.jsp
+
+### Login confirmation view (logged in, warn=true)
+casLoginConfirmView.(class)=org.springframework.web.servlet.view.JstlView
+casLoginConfirmView.url=/WEB-INF/view/jsp/default/ui/casConfirmView.jsp
+
+### Logged-in view (logged in, no service provided)
+casLoginGenericSuccessView.(class)=org.springframework.web.servlet.view.JstlView
+casLoginGenericSuccessView.url=/WEB-INF/view/jsp/default/ui/casGenericSuccess.jsp
+
+### Logout view (/logout)
+casLogoutView.(class)=org.springframework.web.servlet.view.JstlView
+casLogoutView.url=/WEB-INF/view/jsp/default/ui/casLogoutView.jsp
+
+### CAS error view
+viewServiceErrorView.(class)=org.springframework.web.servlet.view.JstlView
+viewServiceErrorView.url=/WEB-INF/view/jsp/default/ui/serviceErrorView.jsp
+
+viewServiceSsoErrorView.(class)=org.springframework.web.servlet.view.JstlView
+viewServiceSsoErrorView.url=/WEB-INF/view/jsp/default/ui/serviceErrorSsoView.jsp
+
+### CAS statistics view
+viewStatisticsView.(class)=org.springframework.web.servlet.view.JstlView
+viewStatisticsView.url=/WEB-INF/view/jsp/monitoring/viewStatistics.jsp
+
+### Expired Password Error message
+casExpiredPassView.(class)=org.springframework.web.servlet.view.JstlView
+casExpiredPassView.url=/WEB-INF/view/jsp/default/ui/casExpiredPassView.jsp
+
+### Locked Account Error message
+casAccountLockedView.(class)=org.springframework.web.servlet.view.JstlView
+casAccountLockedView.url=/WEB-INF/view/jsp/default/ui/casAccountLockedView.jsp
+
+### Disabled Account Error message
+casAccountDisabledView.(class)=org.springframework.web.servlet.view.JstlView
+casAccountDisabledView.url=/WEB-INF/view/jsp/default/ui/casAccountDisabledView.jsp
+
+### Must Change Password Error message
+casMustChangePassView.(class)=org.springframework.web.servlet.view.JstlView
+casMustChangePassView.url=/WEB-INF/view/jsp/default/ui/casMustChangePassView.jsp
+
+### Bad Hours Error message
+casBadHoursView.(class)=org.springframework.web.servlet.view.JstlView
+casBadHoursView.url=/WEB-INF/view/jsp/default/ui/casBadHoursView.jsp
+
+### Bad Workstation Error message
+casBadWorkstationView.(class)=org.springframework.web.servlet.view.JstlView
+casBadWorkstationView.url=/WEB-INF/view/jsp/default/ui/casBadWorkstationView.jsp
+

+ 132 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/log4j.xml

@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<log4j:configuration debug="false" xmlns:log4j="http://jakarta.apache.org/log4j/">
+    <!--
+      This default ConsoleAppender is used to logger all NON perf4j messages
+      to System.out
+    -->
+    <appender name="console" class="org.apache.log4j.ConsoleAppender">
+        <layout class="org.apache.log4j.PatternLayout">
+            <param name="ConversionPattern" value="%d %p [%c] - &lt;%m&gt;%n"/>
+        </layout>
+    </appender>
+
+    <appender name="cas" class="org.apache.log4j.RollingFileAppender">
+        <param name="File" value="cas.log" />
+        <param name="MaxFileSize" value="512KB" />
+        <param name="MaxBackupIndex" value="3" />
+        <layout class="org.apache.log4j.PatternLayout">
+            <param name="ConversionPattern" value="%d %p [%c] - %m%n"/>
+        </layout>
+    </appender>
+
+    <!-- Perf4J appenders -->
+    <!--
+       This AsyncCoalescingStatisticsAppender groups StopWatch logger messages
+       into GroupedTimingStatistics messages which it sends on the
+       file appender defined below
+    -->
+    <appender name="CoalescingStatistics" class="org.perf4j.log4j.AsyncCoalescingStatisticsAppender">
+        <param name="TimeSlice" value="60000"/>
+        <appender-ref ref="fileAppender"/>
+        <appender-ref ref="graphExecutionTimes"/>
+        <appender-ref ref="graphExecutionTPS"/>
+    </appender>
+
+    <!-- This file appender is used to output aggregated performance statistics -->
+    <appender name="fileAppender" class="org.apache.log4j.FileAppender">
+        <param name="File" value="perfStats.log"/>
+        <layout class="org.apache.log4j.PatternLayout">
+            <param name="ConversionPattern" value="%m%n"/>
+        </layout>
+    </appender>
+
+    <appender name="graphExecutionTimes" class="org.perf4j.log4j.GraphingStatisticsAppender">
+        <!-- Possible GraphTypes are Mean, Min, Max, StdDev, Count and TPS -->
+        <param name="GraphType" value="Mean"/>
+        <!-- The tags of the timed execution blocks to graph are specified here -->
+        <param name="TagNamesToGraph" value="DESTROY_TICKET_GRANTING_TICKET,GRANT_SERVICE_TICKET,GRANT_PROXY_GRANTING_TICKET,VALIDATE_SERVICE_TICKET,CREATE_TICKET_GRANTING_TICKET,AUTHENTICATE" />
+    </appender>
+
+    <appender name="graphExecutionTPS" class="org.perf4j.log4j.GraphingStatisticsAppender">
+        <param name="GraphType" value="TPS" />
+        <param name="TagNamesToGraph" value="DESTROY_TICKET_GRANTING_TICKET,GRANT_SERVICE_TICKET,GRANT_PROXY_GRANTING_TICKET,VALIDATE_SERVICE_TICKET,CREATE_TICKET_GRANTING_TICKET,AUTHENTICATE" />
+    </appender>
+
+    <!-- Loggers -->
+    <!--
+      The Perf4J logger. Note that org.perf4j.TimingLogger is the value of the
+      org.perf4j.StopWatch.DEFAULT_LOGGER_NAME constant. Also, note that
+      additivity is set to false, which is usually what is desired - this means
+      that timing statements will only be sent to this logger and NOT to
+      upstream loggers.
+    -->
+    <logger name="org.perf4j.TimingLogger" additivity="false">
+        <level value="INFO" />
+        <appender-ref ref="CoalescingStatistics" />
+    </logger>
+
+    <!--
+        WARNING: Setting the org.springframework logger to DEBUG displays debug information about
+        the request parameter values being bound to the command objects.  This could expose your
+        password in the logger file.  If you are sharing your logger files, it is recommend you selectively
+        apply DEBUG level logging on a an org.springframework.* package level (i.e. org.springframework.dao)
+    -->
+    <logger name="org.springframework">
+        <level value="WARN" />
+    </logger>
+
+    <logger name="org.springframework.webflow">
+        <level value="WARN" />
+    </logger>
+
+    <logger name="org.jasig" additivity="true">
+        <level value="INFO" />
+        <appender-ref ref="cas" />
+    </logger>
+
+    <logger name="com.github.inspektr.audit.support.Slf4jLoggingAuditTrailManager">
+        <level value="INFO" />
+        <appender-ref ref="cas" />
+    </logger>
+
+    <!--
+        WARNING: Setting the flow package to DEBUG will display
+        the parameters posted to the login servlet including
+        cleartext authentication credentials
+    -->
+    <logger name="org.jasig.cas.web.flow" additivity="true">
+        <level value="INFO" />
+        <appender-ref ref="cas" />
+    </logger>
+
+    <!--
+      The root logger sends all logger statements EXCEPT those sent to the perf4j
+      logger to System.out.
+    -->
+    <root>
+        <level value="ERROR" />
+        <appender-ref ref="console" />
+    </root>
+</log4j:configuration>

+ 108 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/messages.properties

@@ -0,0 +1,108 @@
+#Welcome Screen Messages
+
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+screen.welcome.welcome=Congratulations on bringing CAS online!  To learn how to authenticate, please review the default authentication handler configuration.
+screen.welcome.security=For security reasons, please Log Out and Exit your web browser when you are done accessing services that require authentication!
+screen.welcome.instructions=Enter your Username and Password
+screen.welcome.label.netid=<span class="accesskey">U</span>sername:
+screen.welcome.label.netid.accesskey=u
+screen.welcome.label.password=<span class="accesskey">P</span>assword:
+screen.welcome.label.password.accesskey=p
+screen.welcome.label.warn=<span class="accesskey">W</span>arn me before logging me into other sites.
+screen.welcome.label.warn.accesskey=w
+screen.welcome.button.login=LOGIN
+screen.welcome.button.clear=CLEAR
+
+logo.title=go to Jasig home page
+copyright=Copyright &copy; 2005&ndash;2012 Jasig, Inc. All rights reserved.
+
+# Blocked Errors Page
+screen.blocked.header=Access Denied
+screen.blocked.message=You've entered the wrong password for the user too many times.  You've been throttled.
+
+#Confirmation Screen Messages
+screen.confirmation.message=Click <a href="{0}">here</a> to go to the application.
+
+#Generic Success Screen Messages
+screen.success.header=Log In Successful
+screen.success.success=You have successfully logged into the Central Authentication Service.
+screen.success.security=When you are finished, for security reasons, please Log Out and Exit your web browser.
+
+#Logout Screen Messages
+screen.logout.header=Logout successful
+screen.logout.success=You have successfully logged out of the Central Authentication Service.
+screen.logout.security=For security reasons, exit your web browser.
+screen.logout.redirect=The service from which you arrived has supplied a <a href="{0}">link you may follow by clicking here</a>.
+
+screen.service.sso.error.header=Re-Authentication Required to Access this Service
+screen.service.sso.error.message=You attempted to access a service that requires authentication without re-authenticating.  Please try <a href="{0}">authenticating again</a>.
+
+error.invalid.loginticket=You cannot attempt to re-submit a form that has been submitted already.
+required.username=Username is a required field.
+required.password=Password is a required field.
+
+# Authentication failure messages
+authenticationFailure.AccountDisabledException=This account has been disabled.
+authenticationFailure.AccountLockedException=This account has been locked.
+authenticationFailure.CredentialExpiredException=Your password has expired.
+authenticationFailure.InvalidLoginLocationException=You cannot login from this workstation.
+authenticationFailure.InvalidLoginTimeException=Your account is forbidden to login at this time.
+authenticationFailure.AccountNotFoundException=Invalid credentials.
+authenticationFailure.FailedLoginException=Invalid credentials.
+authenticationFailure.UNKNOWN=Invalid credentials.
+
+INVALID_REQUEST_PROXY='pgt' and 'targetService' parameters are both required
+INVALID_TICKET_SPEC=Ticket failed validation specification. Possible errors could include attempting to validate a Proxy Ticket via a Service Ticket validator, or not complying with the renew true request.
+INVALID_REQUEST='service' and 'ticket' parameters are both required
+INVALID_TICKET=Ticket ''{0}'' not recognized
+INVALID_SERVICE=Ticket ''{0}'' does not match supplied service. The original service was ''{1}'' and the supplied service was ''{2}''.
+INVALID_PROXY_CALLBACK=The supplied proxy callback url ''{0}'' could not be authenticated.
+UNAUTHORIZED_SERVICE_PROXY=The supplied service ''{0}'' is not authorized to use CAS proxy authentication.
+
+screen.service.error.header=Application Not Authorized to Use CAS
+screen.service.error.message=The application you attempted to authenticate to is not authorized to use CAS.
+screen.service.empty.error.message=The services registry of CAS is empty and has no service definitions. \
+Applications that wish to authenticate with CAS must explicitly be defined in the services registry.
+
+# Password policy
+password.expiration.warning=Your password expires in {0} day(s). Please <a href="{1}">change your password</a> now.
+password.expiration.loginsRemaining=You have {0} login(s) remaining before you <strong>MUST</strong> change your password.
+screen.accountdisabled.heading=This account has been disabled.
+screen.accountdisabled.message=Please contact the system administrator to regain access.
+screen.accountlocked.heading=This account has been locked.
+screen.accountlocked.message=Please contact the system administrator to regain access.
+screen.expiredpass.heading=Your password has expired.
+screen.expiredpass.message=Please <a href="{0}">change your password</a>.
+screen.mustchangepass.heading=You must change your password.
+screen.mustchangepass.message=Please <a href="{0}">change your password</a>.
+screen.badhours.heading=Your account is forbidden to login at this time.
+screen.badhours.message=Please try again later.
+screen.badworkstation.heading=You cannot login from this workstation.
+screen.badworkstation.message=Please contact the system administrator to regain access.
+
+# OAuth
+screen.oauth.confirm.header=Authorization
+screen.oauth.confirm.message=Do you want to grant access to your complete profile to "{0}" ?
+screen.oauth.confirm.allow=Allow
+
+# Unavailable
+screen.unavailable.heading=CAS is Unavailable
+screen.unavailable.message=There was an error trying to complete your request. Please notify your support desk or try again.

+ 71 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/messages_ar.properties

@@ -0,0 +1,71 @@
+#Welcome Screen Messages
+
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+screen.welcome.welcome=<span dir='rtl'>\u062A\u0647\u0627\u0646\u064A\u0646\u0627 \u0639\u0644\u0649 \u062C\u0644\u0628 CAS \u0639\u0644\u0649 \u0627\u0644\u0627\u0646\u062A\u0631\u0646\u062A!</span>
+screen.welcome.security=<span dir='rtl'>\u0644\u0623\u0633\u0628\u0627\u0628 \u0623\u0645\u0646\u064A\u0629\u060C \u0627\u0644\u0631\u062C\u0627\u0621 \u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062E\u0631\u0648\u062C \u0648\u062E\u0631\u0648\u062C \u0645\u062A\u0635\u0641\u062D \u0627\u0644\u0648\u064A\u0628 \u0627\u0644\u062E\u0627\u0635 \u0628\u0643 \u0628\u0639\u062F \u0627\u0644\u062D\u0635\u0648\u0644 \u0639\u0644\u0649 \u0627\u0644\u062E\u062F\u0645\u0627\u062A \u0627\u0644\u062A\u064A \u062A\u062A\u0637\u0644\u0628 \u0627\u0644\u0645\u0635\u0627\u062F\u0642\u0629!</span>
+screen.welcome.instructions=<span dir='rtl'>\u0623\u062F\u062E\u0644 \u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062A\u062E\u062F\u0645 \u0648\u0643\u0644\u0645\u0629 \u0627\u0644\u0633\u0631</span>
+screen.welcome.label.netid=<span dir='rtl'>\u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062A\u062E\u062F\u0645 </span>
+screen.welcome.label.netid.accesskey=
+screen.welcome.label.password=<span dir='rtl'>\u0643\u0644\u0645\u0629 \u0627\u0644\u0633\u0631</span>
+screen.welcome.label.password.accesskey=
+screen.welcome.label.warn=<span dir='rtl'>\u062A\u062D\u0630\u0631\u0646\u064A \u0642\u0628\u0644 \u062A\u0633\u062C\u064A\u0644\u064A \u0641\u064A \u0627\u0644\u0645\u0648\u0627\u0642\u0639 \u0627\u0644\u0623\u062E\u0631\u0649.</span>
+screen.welcome.label.warn.accesskey=
+screen.welcome.button.login=\u062F\u062E\u0648\u0644
+screen.welcome.button.clear=\u0627\u0644\u063A\u0627
+
+logo.title=\u0627\u0644\u0630\u0647\u0627\u0628 \u0625\u0644\u0649 \u0627\u0644\u0635\u0641\u062D\u0629 Jasig
+copyright=<span dir='rtl'>\u062D\u0642 \u0627\u0644\u0646\u0634\u0631 &copy; 2005 - 2012 Jasig, Inc. \u062C\u0645\u064A\u0639 \u0627\u0644\u062D\u0642\u0648\u0642 \u0645\u062D\u0641\u0648\u0638\u0629.</span>
+
+# Blocked Errors Page
+screen.blocked.header=<span dir='rtl'>\u0627\u0644\u0648\u0635\u0648\u0644 \u0645\u0631\u0641\u0648\u0636</span>
+screen.blocked.message=<span dir='rtl'>\u0644\u0642\u062F \u0642\u0645\u062A \u0628\u0625\u062F\u062E\u0627\u0644 \u0643\u0644\u0645\u0629 \u0645\u0631\u0648\u0631 \u062E\u0627\u0637\u0626\u0629 \u0644\u0644\u0645\u0633\u062A\u062E\u062F\u0645 \u0645\u0631\u0627\u062A \u0643\u062B\u064A\u0631\u0629 \u062C\u062F\u0627. \u0644\u0642\u062F \u0643\u0646\u062A \u0645\u062E\u0646\u0648\u0642.</span>
+
+#Confirmation Screen Messages
+screen.confirmation.message=<span dir='rtl'>\u0627\u0636\u063A\u0637 \u0647\u0646\u0627 {0} \u0644\u0644\u0630\u0647\u0627\u0628 \u0625\u0644\u0649 \u0627\u0644\u062A\u0637\u0628\u064A\u0642</span>
+
+#Generic Success Screen Messages
+screen.success.header=<span dir='rtl'>\u062A\u0633\u062C\u064A\u0644 \u0646\u0627\u062C\u062D</span>
+screen.success.success=<span dir='rtl'>\u0644\u0642\u062F \u0642\u0645\u062A \u0628\u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062F\u062E\u0648\u0644 \u0628\u0646\u062C\u0627\u062D \u0644\u0644\u062F\u062E\u0648\u0644 \u0625\u0644\u0649 \u0645\u0631\u0643\u0632 \u0627\u0644\u0645\u0635\u0627\u062F\u0642\u0629</span>
+screen.success.security=<span dir='rtl'>\u0644\u0623\u0633\u0628\u0627\u0628 \u0623\u0645\u0646\u064A\u0629\u060C \u0627\u0644\u0631\u062C\u0627\u0621 \u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062E\u0631\u0648\u062C \u0648 \u0627\u0644\u062E\u0631\u0648\u062C \u0645\u0646 \u0645\u062A\u0635\u0641\u062D \u0627\u0644\u0648\u064A\u0628 \u0627\u0644\u062E\u0627\u0635 \u0628\u0643 \u0628\u0639\u062F \u0627\u0644\u062D\u0635\u0648\u0644 \u0639\u0644\u0649 \u0627\u0644\u062E\u062F\u0645\u0627\u062A \u0627\u0644\u062A\u064A \u062A\u062A\u0637\u0644\u0628 \u0627\u0644\u0645\u0635\u0627\u062F\u0642\u0629!</span>
+
+#Logout Screen Messages
+screen.logout.header=<span dir='rtl'>\u062E\u0631\u0648\u062C \u0646\u0627\u062C\u062D</span>
+screen.logout.success=<span dir='rtl'>\u0644\u0642\u062F \u0642\u0645\u062A \u0628\u062A\u0633\u062C\u064A\u0644 \u0627\u0644\u062E\u0631\u0648\u062C \u0628\u0646\u062C\u0627\u062D \u0644\u0644\u062E\u0631\u0648\u062C \u0645\u0646 \u0645\u0631\u0643\u0632 \u0627\u0644\u0645\u0635\u0627\u062F\u0642\u0629</span>
+screen.logout.security=<span dir='rtl'>\u0644\u0623\u0633\u0628\u0627\u0628 \u0623\u0645\u0646\u064A\u0629\u060C \u064A\u062C\u0628 \u0627\u0644\u062E\u0631\u0648\u062C \u0645\u0646 \u0645\u062A\u0635\u0641\u062D \u0627\u0644\u0648\u064A\u0628 \u0627\u0644\u062E\u0627\u0635 \u0628\u0643 </span>
+screen.logout.redirect=<span dir='rtl'>\u0627\u0644\u0645\u0631\u0643\u0632 \u0627\u0644\u0630\u064A \u0648\u0635\u0644\u062A \u0645\u0646\u0647 \u0642\u062F \u0632\u0648\u062F  \u0648\u0635\u0644 \u0627\u0631\u062A\u0628\u0627\u0637  \u0627\u062A\u0628\u0639 \u0628\u0627\u0644\u0636\u063A\u0637 \u0647\u0646\u0627 </span>
+
+screen.service.sso.error.header=<span dir='rtl'> \u0644\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u0647\u0630\u0627 \u0627\u0644\u0645\u0631\u0643\u0632 \u064A\u062C\u0628 \u0625\u0639\u0627\u062F\u0629 \u0627\u0644\u0645\u0635\u0627\u062F\u0642\u0629 </span>
+screen.service.sso.error.message=<span dir='rtl'>\u0644\u0642\u062F \u062D\u0627\u0648\u0644\u062A \u0627\u0644\u0648\u0635\u0648\u0644 \u0625\u0644\u0649 \u062E\u062F\u0645\u0629 \u064A\u062A\u0637\u0644\u0628 \u0645\u0635\u0627\u062F\u0642\u0629 \u0645\u0646 \u062F\u0648\u0646 \u0645\u0635\u0627\u062F\u0642\u0629 \u0645\u0646 \u062C\u062F\u064A\u062F.\u0627\u0644\u0631\u062C\u0627\u0621 \u062D\u0627\u0648\u0644 \u0644\u0645\u0635\u0627\u062F\u0642\u0629 \u0645\u0631\u0629 \u0623\u062E\u0631\u0649 {0} </span>
+
+error.invalid.loginticket=\u0644\u0627 \u064A\u0645\u0643\u0646\u0643 \u0645\u062D\u0627\u0648\u0644\u0629 \u0625\u0639\u0627\u062F\u0629 \u0627\u0644\u062A\u0642\u062F\u064A\u0645 \u0644\u0644\u0646\u0645\u0648\u0630\u062C \u0627\u0644\u0630\u064A \u062A\u0645 \u062A\u0642\u062F\u064A\u0645\u0647 \u0628\u0627\u0644\u0641\u0639\u0644
+required.username=\u0627\u0633\u0645 \u0627\u0644\u0645\u0633\u062A\u062E\u062F\u0645 \u0647\u0648 \u0627\u0644\u062D\u0642\u0644 \u0627\u0644\u0645\u0637\u0644\u0648\u0628
+required.password=\u0643\u0644\u0645\u0629 \u0627\u0644\u0633\u0631 \u0647\u064A \u0627\u0644\u062D\u0642\u0644 \u0627\u0644\u0645\u0637\u0644\u0648\u0628
+error.authentication.credentials.bad= \u0623\u0648\u0631\u0627\u0642 \u0627\u0644\u0627\u0639\u062A\u0645\u0627\u062F \u0627\u0644\u062A\u064A \u0642\u062F\u0645\u062A\u0647\u0627 \u0644\u0627 \u064A\u0645\u0643\u0646 \u062A\u062D\u062F\u064A\u0647 \u0644\u0644\u0645\u0635\u0627\u062F\u0642\u0629 \u0639\u0644\u064A\u0647
+error.authentication.credentials.unsupported= \u0623\u0648\u0631\u0627\u0642 \u0627\u0644\u0627\u0639\u062A\u0645\u0627\u062F \u0627\u0644\u062A\u064A \u0642\u062F\u0645\u062A\u0647\u0627 \u063A\u064A\u0631 \u0645\u0639\u062A\u0645\u062F\u0629 \u0628\u0648\u0627\u0633\u0637\u0629
+
+INVALID_REQUEST_PROXY=pgt  \u0648 targetService \u0645\u0639\u0644\u0645\u0627\u062A \u06A9\u0644\u0627\u0647\u0645\u0627 \u0645\u0637\u0644\u0648\u0628
+INVALID_TICKET_SPEC=\u0641\u0634\u0644 \u0627\u0644\u062A\u062D\u0642\u0642 \u0645\u0646 \u0635\u062D\u0629 \u0645\u0648\u0627\u0635\u0641\u0627\u062A \u0627\u0644\u062A\u0630\u0627\u0643\u0631. \u064A\u0645\u0643\u0646 \u0623\u0646 \u062A\u062A\u0636\u0645\u0646 \u0623\u062E\u0637\u0627\u0621 \u0645\u062D\u062A\u0645\u0644\u0629 \u062A\u062D\u0627\u0648\u0644 \u0627\u0644\u062A\u062D\u0642\u0642 \u0645\u0646 \u0635\u062D\u0629 \u0627\u0644\u062A\u0630\u0627\u0643\u0631 \u0639\u0646 \u0637\u0631\u064A\u0642 \u0648\u0643\u064A\u0644 \u0645\u062F\u0642\u0642 \u062A\u0630\u0643\u0631\u0629 \u0627\u0644\u062E\u062F\u0645\u0629\u060C \u0623\u0648 \u0644\u0645 \u064A\u0645\u062A\u062B\u0644 \u0644\u0637\u0644\u0628 \u062A\u062C\u062F\u064A\u062F \u062D\u0642\u064A\u0642\u064A
+INVALID_REQUEST=service  \u0648 ticket \u0645\u0639\u0644\u0645\u0627\u062A \u06A9\u0644\u0627\u0647\u0645\u0627 \u0645\u0637\u0644\u0648\u0628
+INVALID_TICKET=\u062A\u0630\u0643\u0631\u0629 {0} \u0644\u0627 \u064A\u0639\u062A\u0631\u0641
+INVALID_SERVICE=\u062A\u0630\u0643\u0631\u0629 {0} \u0644\u0627 \u064A\u062A\u0637\u0627\u0628\u0642 \u0645\u0639 \u0627\u0644\u062E\u062F\u0645\u0629 \u0627\u0644\u0645\u0642\u062F\u0645\u0629. \u0643\u0627\u0646\u062A \u0627\u0644\u062E\u062F\u0645\u0629 \u0627\u0644\u0623\u0635\u0644\u064A\u0629 {1} \u0648\u06A9\u0627\u0646\u062A \u0627\u0644\u062E\u062F\u0645\u0629 \u0627\u0644\u0645\u0642\u062F\u0645\u0629  {2{
+
+screen.service.error.header=<span dir='rtl'>\u0627\u0644\u062A\u0637\u0628\u064A\u0642 \u0644\u0627 \u064A\u0633\u0645\u062D \u0627\u0633\u062A\u062E\u062F\u0627\u0645 CAS</span>
+screen.service.error.message=<span dir='rtl'>\u0627\u0644\u062E\u062F\u0645\u0629 \u0627\u0644\u062A\u064A \u062A\u0637\u0644\u0628\u064A\u0646\u0647\u0627 \u063A\u0631 \u0645\u0633\u0645\u0648\u062D\u0629 \u0628\u0647\u0627 \u0644\u062F\u0649 \u0627\u0633\u062A\u0639\u0645\u0627\u0644  CAS</span>

+ 110 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/messages_ca.properties

@@ -0,0 +1,110 @@
+#Author: Evili del Rio i Silvan and Alex Henrie
+
+#Welcome Screen Messages
+
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+screen.welcome.welcome=Felicitats per engegar el CAS correctament! Per aprendre com autenticar, si us plau, repasseu la configuraci\u00f3 del gestor d'autenticaci\u00f3 per defecte.
+screen.welcome.security=Per raons de seguretat, si us plau, tanqueu la sessi\u00f3 i el vostre navegador web quan h\u00e0giu acabat d'accedir als serveis que requereixen autenticaci\u00f3.
+screen.welcome.instructions=Introdu\u00efu el vostre nom d'usuari i contrasenya.
+screen.welcome.label.netid=Nom d'<span class="accesskey">u</span>suari:
+screen.welcome.label.netid.accesskey=u
+screen.welcome.label.password=<span class="accesskey">C</span>ontrasenya:
+screen.welcome.label.password.accesskey=c
+screen.welcome.label.warn=<span class="accesskey">A</span>viseu-me abans d'obrir sessi\u00f3 en altres llocs.
+screen.welcome.label.warn.accesskey=a
+screen.welcome.button.login=INICIA SESSI\u00d3
+screen.welcome.button.clear=NETEJA
+
+logo.title=v\u00e9s a la p\u00e0gina principal de Jasig
+copyright=Copyright &copy; 2005&ndash;2012 Jasig, Inc. Tots els drets reservats.
+
+# Blocked Errors Page
+screen.blocked.header=Acc\u00e9s denegat
+screen.blocked.message=Heu introdu\u00efda una contrasenya equivocada pel usuari massa vegades. Se us ha restringit.
+
+#Confirmation Screen Messages
+screen.confirmation.message=Feu clic <a href="{0}">aqu\u00ed</a> per a anar a l'aplicaci\u00f3.
+
+#Generic Success Screen Messages
+screen.success.header=Inici de sessi\u00f3 reeixit.
+screen.success.success=Heu iniciada amb \u00e8xit la sessi\u00f3 al Servei Central d'Autenticaci\u00f3 (CAS).
+screen.success.security=Per raons de seguretat, si us plau, tanqueu la sessi\u00f3 i el vostre navegador web quan hagi acabat d'accedir als serveis que requereixen autenticaci\u00f3.
+
+#Logout Screen Messages
+screen.logout.header=Tancament de sessi\u00f3 reeixit.
+screen.logout.success=Heu tancada amb \u00e8xit la sessi\u00f3 al Servei Central d'Autenticaci\u00f3 (CAS).
+screen.logout.security=Per raons de seguretat, tanqueu el vostre navegador web.
+screen.logout.redirect=El servei des del qual heu arribat ha proporcionat un <a href="{0}">enlla\u00e7 que podeu seguir per fer clic aqu\u00ed</a>.
+
+screen.service.sso.error.header=Cal reautenticar per a accedir a aquest servei
+screen.service.sso.error.message=Heu intentat accedir a un servei que requereix autenticaci\u00f3 sense reautenticar. Si us plau, intenteu <a href="{0}">autenticar de nou</a>.
+
+error.invalid.loginticket=No podeu intentar reenviar un formulari que ja s'ha enviat.
+required.username=El nom d'usuari \u00e9s un camp obligatori.
+required.password=La contrasenya \u00e9s un camp obligatori.
+
+# Authentication failure messages
+authenticationFailure.AccountDisabledException=S'ha deshabilitat aquest compte.
+authenticationFailure.AccountLockedException=S'ha bloquejat aquest compte.
+authenticationFailure.CredentialExpiredException=La vostra contrasenya ha caducada.
+authenticationFailure.InvalidLoginLocationException=No podeu iniciar sessi\u00f3 des d'aquesta estaci\u00f3 de treball.
+authenticationFailure.InvalidLoginTimeException=Est\u00e0 prohibit iniciar sessi\u00f3 amb el vostre compte en aquest moment.
+authenticationFailure.AccountNotFoundException=Credencials inv\u00e0lids.
+authenticationFailure.FailedLoginException=Credencials inv\u00e0lids.
+authenticationFailure.UNKNOWN=Credencials inv\u00e0lids.
+
+INVALID_REQUEST_PROXY=calen ambd\u00f3s dels par\u00e0metres 'pgt' i 'targetService'
+INVALID_TICKET_SPEC=El tiquet ha fallada l'especificaci\u00f3 de validaci\u00f3. Els errors possibles poden incloure intentar validar un tiquet de proxy mitjan\u00e7ant un validador de tiquets de servei, o no complir amb la petici\u00f3 de renovaci\u00f3 (renew true).
+INVALID_REQUEST=calen ambd\u00f3s dels par\u00e0metres 'service' i 'ticket'
+INVALID_TICKET=No s'ha reconegut el tiquet ''{0}''
+INVALID_SERVICE=El tiquet ''{0}'' no coincideix amb el servei proporcionat. El servei original era ''{1}'' i el servei proporcionat era ''{2}''.
+INVALID_PROXY_CALLBACK=L'adre\u00e7a de retrotrucada de proxy prove\u00efda ''{0}'' no s'ha poguda autenticar.
+UNAUTHORIZED_SERVICE_PROXY=El servei proporcionat ''{0}'' no est\u00e0 autoritzat a utilitzar l'autenticaci\u00f3 de proxy del CAS.
+
+screen.service.error.header=Aplicaci\u00f3 no autoritzada a utilitzar el CAS
+screen.service.error.message=L'aplicaci\u00f3 a que heu intentat autenticar no est\u00e0 autoritzada a utilitzar el CAS.
+screen.service.empty.error.message=El registre de serveis del CAS est\u00e0 buit i no t\u00e9 definicions de servei. \
+Les aplicacions que volen autenticar amb el CAS han de ser expl\u00edcitament definides en el registre de serveis.
+
+# Password policy
+password.expiration.warning=La vostra contrasenya caduca en {0} dies. Si us plau, <a href="{1}">canvieu la vostra contrasenya</a> ara.
+password.expiration.loginsRemaining=Teniu {0} inicis de sessi\u00f3 restant abans que <strong>HEU</strong> de canviar la vostra contrasenya.
+screen.accountdisabled.heading=S'ha deshabilitat aquest compte.
+screen.accountdisabled.message=Si us plau, contacteu a l'administrador de sistema per a recobrar l'acc\u00e9s.
+screen.accountlocked.heading=S'ha bloquejat aquest compte.
+screen.accountlocked.message=Si us plau, contacteu a l'administrador de sistema per a recobrar l'acc\u00e9s.
+screen.expiredpass.heading=La vostra contrasenya ha caducada.
+screen.expiredpass.message=Si us plau, <a href="{0}">canvieu la vostra contrasenya</a>.
+screen.mustchangepass.heading=Has de canviar la vostra contrasenya.
+screen.mustchangepass.message=Si us plau, <a href="{0}">canvieu la vostra contrasenya</a>.
+screen.badhours.heading=Est\u00e0 prohibit iniciar sessi\u00f3 amb el vostre compte en aquest moment.
+screen.badhours.message=Si us plau, intenteu m\u00e9s tard.
+screen.badworkstation.heading=No podeu iniciar sessi\u00f3 des d'aquesta estaci\u00f3 de treball.
+screen.badworkstation.message=Si us plau, contacteu a l'administrador de sistema per a recobrar l'acc\u00e9s.
+
+# OAuth
+screen.oauth.confirm.header=Autoritzaci\u00f3
+screen.oauth.confirm.message=Voleu concedir acc\u00e9s al vostre perfil complet a "{0}"?
+screen.oauth.confirm.allow=Permet
+
+# Unavailable
+screen.unavailable.heading=El CAS no est\u00e0 disponible
+screen.unavailable.message=Ha hagu\u00e9s un error al intentar complir amb la vostra petici\u00f3. Si us plau, notifiqueu al vostre servei d'assist\u00e8ncia o intenteu de nou.

+ 103 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/messages_cs.properties

@@ -0,0 +1,103 @@
+#Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net)
+#Welcome Screen Messages
+
+INVALID_PROXY_CALLBACK = Poskytnut\u00E9 URL proxy callbacku ''{0}'' nelze autentifikovat.
+
+INVALID_REQUEST = Parametry 'service' a 'ticket' jsou povinn\u00E9
+
+INVALID_REQUEST_PROXY = Parametry 'pgt' a 'targetService' jsou povinn\u00E9
+
+INVALID_SERVICE = Ticket ''{0}'' nesouhlas\u00ED s poskytovanou slu\u017Ebou. P\u016Fvodn\u00ED slu\u017Eba byla ''{1}'', poskytnut\u00E1 je ''{2}''.
+
+INVALID_TICKET = Ticket ''{0}'' nebyl rozpozn\u00E1n
+
+INVALID_TICKET_SPEC = Ticket neporo\u0161el kontrolou validity. Mo\u017En\u00E9 chyby zahrnuj\u00ED pokus o ov\u011B\u0159en\u00ED Proxy Ticketu pomoc\u00ED ov\u011B\u0159en\u00ED Service Ticketu nebo nedodr\u017Een\u00ED po\u017Eadavku na renew.
+
+UNAUTHORIZED_SERVICE_PROXY = Poskytnut\u00E1 slu\u017Eba ''{0}'' nen\u00ED opr\u00E1vn\u011Bn\u00ED k pou\u017Eit\u00ED CAS proxy autentizace.
+
+authenticationFailure.AccountDisabledException      = Tento \u00FA\u010Det byl zak\u00E1z\u00E1n.
+authenticationFailure.AccountLockedException        = Tento \u00FA\u010Det byl uzam\u010Den.
+authenticationFailure.AccountNotFoundException      = Nezn\u00E1m\u00E9 p\u0159ihla\u0161ovac\u00ED \u00FAdaje.
+authenticationFailure.CredentialExpiredException    = Va\u0161e heslo ji\u017E nen\u00ED platn\u00E9.
+authenticationFailure.FailedLoginException          = Neplatn\u00E9 p\u0159ihla\u0161ovac\u00ED \u00FAdaje.
+authenticationFailure.InvalidLoginLocationException = Z tohoto po\u010D\u00EDta\u010De se nem\u016F\u017Eete p\u0159ihl\u00E1sit.
+authenticationFailure.InvalidLoginTimeException     = P\u0159ihl\u00E1\u0161en\u00ED v tento \u010Das pro V\u00E1\u0161 \u00FA\u010Det povoleno.
+authenticationFailure.UNKNOWN                       = Neplatn\u00E9 p\u0159ihla\u0161ovac\u00ED \u00FAdaje.
+
+copyright = Copyright &copy; 2005&ndash;2012 Jasig, Inc. V\u0161echna pr\u00E1va vyhrazena.
+
+error.invalid.loginticket                    = Nen\u00ED mo\u017En\u00E9 znovu odeslat formul\u00E1\u0159, kter\u00FD ji\u017E byl odesl\u00E1n.
+
+logo.title = j\u00EDt na str\u00E1nky Jasig
+
+password.expiration.loginsRemaining = Zb\u00FDv\u00E1 V\u00E1m {0} p\u0159ihl\u00E1\u0161en\u00ED, ne\u017E budete <strong>MUSET</strong> zm\u011Bnit sv\u00E9 heslo.
+password.expiration.warning         = Va\u0161e heslo vypr\u0161\u00ED za {0} dn\u00ED. <a href="{1}">Zm\u011B\u0148te pros\u00EDm ihned sv\u00E9 heslo</a>.
+
+required.password = Heslo je povinn\u00FD \u00FAdaj.
+required.username = U\u017Eivatelsk\u00E9 jm\u00E9no je povinn\u00FD \u00FAdaj.
+
+screen.accountdisabled.heading          = Tento \u00FA\u010Det byl zak\u00E1z\u00E1n.
+screen.accountdisabled.message          = Pro obnoven\u00ED p\u0159\u00EDstupu kontaktujte pros\u00EDm sv\u00E9ho syst\u00E9mov\u00E9ho administr\u00E1tora.
+screen.accountlocked.heading            = Tento \u00FA\u010Det byl uzam\u010Den.
+screen.accountlocked.message            = Pro obnoven\u00ED p\u0159\u00EDstupu kontaktujte pros\u00EDm sv\u00E9ho syst\u00E9mov\u00E9ho administr\u00E1tora.
+screen.badhours.heading                 = V\u00E1\u0161 \u00FA\u010Det nem\u00E1 povolen\u00ED k p\u0159ihl\u00E1\u0161en\u00ED v tomto \u010Dase.
+screen.badhours.message                 = Zkuste to pros\u00EDm pozd\u011Bji.
+screen.badworkstation.heading           = Z tohoto po\u010D\u00EDta\u010De se nem\u016F\u017Eete p\u0159ihl\u00E1sit.
+screen.badworkstation.message           = Pro obnoven\u00ED p\u0159\u00EDstupu kontaktujte pros\u00EDm sv\u00E9ho syst\u00E9mov\u00E9ho administr\u00E1tora.
+screen.blocked.header                   = P\u0159\u00EDstup odep\u0159en
+screen.blocked.message                  = Zadal(a) jste \u0161patn\u00E9 heslo p\u0159\u00EDli\u0161 \u010Dasto. P\u0159\u00EDtsup byl do\u010Dasn\u011B zablokov\u00E1n.
+#Confirmation Screen Messages
+screen.confirmation.message             = Pro p\u0159echod na web <a href="{0}">klikn\u011Bte zde</a>.
+screen.expiredpass.heading              = Va\u0161e heslo ji\u017E n\u011Bn\u00ED platn\u00E9.
+screen.expiredpass.message              = <a href="{0}">Zm\u011B\u0148te pros\u00EDm sv\u00E9 heslo</a>.
+#Logout Screen Messages
+screen.logout.header                    = \u00DAsp\u011B\u0161n\u00E9 odhl\u00E1\u0161en\u00ED
+screen.logout.redirect                  = Web ze kter\u00E9ho jste sem p\u0159i\u0161li doporu\u010Dil <a href="{0}">odkaz, kam pokra\u010Dovat</a>.
+screen.logout.security                  = Z bezpe\u010Dnostn\u00EDch d\u016Fvod\u016F uzav\u0159ete v\u0161echna okna prohl\u00ED\u017Ee\u010De.
+screen.logout.success                   = \u00DAsp\u011B\u0161n\u011B jste se odhl\u00E1sili od Centr\u00E1ln\u00ED Autentiza\u010Dn\u00ED Slu\u017Eby.
+screen.mustchangepass.heading           = Mus\u00EDte zm\u011Bnit sv\u00E9 heslo.
+screen.mustchangepass.message           = <a href="{0}">Zm\u011B\u0148te pros\u00EDm sv\u00E9 heslo</a>.
+screen.oauth.confirm.allow              = Povolit
+screen.oauth.confirm.header             = Autorizace
+screen.oauth.confirm.message            = Chcete povolit p\u0159\u00EDstup ke sv\u00E9mu profilu pro "{0}"?
+screen.service.empty.error.message      = Registr slu\u017Eeb CASu je pr\u00E1zdn\u00FD a nem\u00E1 definovan\u00E9 \u017E\u00E1dn\u00E9 slu\u017Eby. Aplikace, kter\u00E9 chcete autentizovat pomoc\u00ED CASu mus\u00EDte explicitn\u011B uv\u00E9st v registru slu\u017Eeb.
+#Service Error Messages
+screen.service.error.header             = Aplikace nen\u00ED autorizovan\u00E1 k pou\u017Eit\u00ED p\u0159ihl\u0161ov\u00E1n\u00ED pomoc\u00ED CASu.
+screen.service.error.message            = Aplikace ke kter\u00E9 se sna\u017E\u00EDte p\u0159ihl\u00E1sit nen\u00ED opr\u00E1vn\u011Bna k vyu\u017Eit\u00ED CASu.
+screen.service.sso.error.header         = Pro tuto slu\u017Ebu je po\u017Eadov\u00E1no op\u011Btovn\u00E9 p\u0159ihl\u00E1\u0161en\u00ED
+screen.service.sso.error.message        = Pokou\u0161\u00EDte se p\u0159istoupit ke slu\u017Eb\u011B, kter\u00E1 vy\u017Eaduje op\u011Btovn\u00E9 p\u0159ihl\u00E1\u0161en\u00ED. Zkuste se pros\u00EDm <a href="{0}">p\u0159ihl\u00E1sit znovu</a>.
+#Generic Success Screen Messages
+screen.success.header                   = \u00DAsp\u011B\u0161n\u00E9 p\u0159ihl\u00E1\u0161en\u00ED
+screen.success.security                 = Z bezpe\u010Dnostn\u00EDch d\u016Fvod\u016F se po ukon\u010Den\u00ED pr\u00E1ce odhla\u0161te a zav\u0159ete v\u0161echna okna prohl\u00ED\u017Ee\u010De!
+screen.success.success                  = \u00DAsp\u011B\u0161n\u011B jste se p\u0159ihl\u00E1sili k Centr\u00E1ln\u00ED Autentika\u010Dn\u00ED Slu\u017Eb\u011B.
+screen.unavailable.heading              = CAS nen\u00ED dostupn\u00FD
+screen.unavailable.message              = P\u0159i zpracov\u00E1n\u00ED Va\u0161eho po\u017Eadavku do\u0161lo k chyb\u011B. Uv\u011Bdomte pros\u00EDm syst\u00E9movou podporu nebo to zkuste znovu.
+screen.welcome.button.clear             = VY\u010CISTIT
+screen.welcome.button.login             = P\u0158IHL\u00C1SIT
+screen.welcome.instructions             = Zadejte sv\u00E9 u\u017Eivatelsk\u00E9 jm\u00E9no a heslo
+screen.welcome.label.netid              = <span class="accesskey">U</span>\u017Eivatelsk\u00E9 jm\u00E9no
+screen.welcome.label.netid.accesskey    = u
+screen.welcome.label.password           = <span class="accesskey">H</span>eslo:
+screen.welcome.label.password.accesskey = h
+screen.welcome.label.warn               = Upo<span class="accesskey">z</span>ornit p\u0159ed p\u0159ihl\u00E1\u0161en\u00ED k jin\u00E9 aplikaci.
+screen.welcome.label.warn.accesskey     = z
+screen.welcome.security                 = Z bezpe\u010Dnostn\u00EDch d\u016Fvod\u016F se po ukon\u010Den\u00ED pr\u00E1ce odhla\u0161te a zav\u0159ete v\u0161echna okna prohl\u00ED\u017Ee\u010De!
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+screen.welcome.welcome                  = Gratulujeme, \u00FAsp\u011B\u0161n\u011B jste zprovoznili CAS! Pro zji\u0161t\u011Bn\u00ED, jak se p\u0159ihl\u00E1sit, prohl\u00E1dn\u011Bte si v\u00FDchoz\u00ED konfiguraci autentifika\u010Dn\u00EDho handleru.

+ 108 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/messages_de.properties

@@ -0,0 +1,108 @@
+# Welcome Screen Messages GERMAN
+
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+screen.welcome.welcome=Glückwunsch, Sie haben Ihr CAS System zum Laufen gebracht! Der voreingestellte Authentication Handler gewährt Einlass, wenn der Benutzername dem Passwort entspricht: Nur zu, probieren Sie es aus.
+screen.welcome.security=Aus Sicherheitsgründen sollten Sie bei Verlassen der passwortgeschützten Bereiche sich explizit ausloggen und Ihren Webbrowser schließen!
+screen.welcome.instructions=Bitte geben Sie Ihre Jasig NetID und Ihr Passwort ein.
+screen.welcome.label.netid=<span class="accesskey">N</span>etID:
+screen.welcome.label.netid.accesskey=n
+screen.welcome.label.password=<span class="accesskey">P</span>asswort:
+screen.welcome.label.password.accesskey=p
+screen.welcome.label.warn=Ich möchte ge<span class="accesskey">w</span>arnt werden, bevor ich mich in einen anderen Bereich einlogge.
+screen.welcome.label.warn.accesskey=w
+screen.welcome.button.login=ANMELDEN
+screen.welcome.button.clear=LÖSCHEN
+
+logo.title=zur Jasig Seite wechseln
+copyright=Copyright &copy; 2005&ndash;2012 Jasig, Inc. Alle Rechte vorbehalten.
+
+# Blocked Errors Page
+screen.blocked.header=Zugriff verweigert
+screen.blocked.message=Das Kennwort f\u00FCr den Benutzer wurde zu oft falsch eingegeben. Der Zugriff wird gedrosselt.
+
+#Confirmation Screen Messages
+screen.confirmation.message=Klicken Sie <a href="{0}">hier</a> um zu der zuvor angeforderten Seite zurückzukehren.
+
+#Generic Success Screen Messages
+screen.success.header=Anmeldung erfolgreich
+screen.success.success=Sie haben sich erfolgreich am Central Authentication Service angemeldet.
+screen.success.security=Aus Sicherheitsgründen sollten Sie bei Verlassen der passwortgeschützten Bereiche sich explizit ausloggen und Ihren Webbrowser schliessen!
+
+#Logout Screen Messages
+screen.logout.header=Abmeldung erfolgreich
+screen.logout.success=Sie haben sich erfolgreich vom Central Authentication Service abgemeldet.
+screen.logout.security=Aus Sicherheitsgründen sollten Sie den Browser schliessen.
+screen.logout.redirect=Der Service, von dem Sie herkommen, hat einen <a href\="{0}">Link angegeben, den Sie verfolgen k\u00F6nnen, indem Sie hier klicken</a>.
+
+screen.service.sso.error.header=Eine Neuanmeldung ist erforderlich, um auf den Service zuzugreifen.
+screen.service.sso.error.message=Der Service, für den Sie versucht haben, sich zu authentifizieren, hat nicht das Recht, CAS zu benutzen.
+
+error.invalid.loginticket=Sie können kein Formular erneut abschicken, das bereits übertragen wurde.
+required.username=Benutzername ist ein Pflichtfeld.
+required.password=Passwort ist ein Pflichtfeld.
+
+# Authentication failure messages
+authenticationFailure.AccountDisabledException=Dieses Konto wurde deaktiviert.
+authenticationFailure.AccountLockedException=Dieses Konto wurde gesperrt.
+authenticationFailure.CredentialExpiredException=Ihr Kennwort ist abgelaufen.
+authenticationFailure.InvalidLoginLocationException=Sie k\u00F6nnen sich von dieser Workstation nicht anmelden.
+authenticationFailure.InvalidLoginTimeException=Ihrem Konto ist es nicht gestattet sich zu diesem Zeitpunkt anzumelden.
+authenticationFailure.AccountNotFoundException=Ung\u00FCltige Anmeldedaten.
+authenticationFailure.FailedLoginException=Ung\u00FCltige Anmeldedaten.
+authenticationFailure.UNKNOWN=Ung\u00FCltige Anmeldedaten.
+
+INVALID_REQUEST_PROXY='pgt' und 'targetService' Parameter werden beide benötigt
+INVALID_TICKET_SPEC=Das Ticket entspricht nicht den Überprüfungsregeln. Ein möglicher Fehler könnte sein, dass versucht wurde, ein Proxy Ticket mit einem Service Ticket Validierer zu überprüfen, oder man sich nicht an den renew true Request gehalten hat.
+INVALID_REQUEST='service' und 'ticket' Parameter werden beide benötigt
+INVALID_TICKET=Ticket ''{0}'' wurde nicht anerkannt
+INVALID_SERVICE=Ticket ''{0}'' passt nicht zum angegebenen Service. Der ursprüngliche Service war ''{1}'' und der übermittelte Service war ''{2}''.
+INVALID_PROXY_CALLBACK=Die angegebene Proxy-Callback-Url ''{0}'' kann nicht authentifiziert werden.
+UNAUTHORIZED_SERVICE_PROXY=Dem angegebenen Service ''{0}'' ist es nicht gestattet eine CAS Proxy Authentifizierung zu verwenden.
+
+screen.service.error.header=Applikation nicht berechtigt CAS zu verwenden
+screen.service.error.message=Die Applikation, mit der eine Authentifkation versucht wurde, ist nicht berechtigt CAS zu verwenden.
+screen.service.empty.error.message=Die Service-Registrierung des CAS Server ist leer und hat keine Service-Definitionen.\
+Applikationen, welche \u00FCber CAS authentifizieren m\u00F6chten, m\u00FCssen in der Services-Registrierung definiert werden.
+
+# Password policy
+password.expiration.warning=Ihr Kennwort l\u00E4uft in {0} Tagen ab. Bitte <a href\="{1}">\u00E4ndern Sie Ihr Kennwort</a>.
+password.expiration.loginsRemaining=Sie haben {0} anmeldungen \u00FCbrig, bevor Sie Ihr Kennwort \u00E4ndern <strong>m\u00FCssen</strong>.
+screen.accountdisabled.heading=Dieses Konto wurde deaktiviert.
+screen.accountdisabled.message=Bitte kontaktieren Sie Ihren System Administrator um wieder Zugriff zu erhalten.
+screen.accountlocked.heading=Dieses Konto wurde gesperrt.
+screen.accountlocked.message=Bitte kontaktieren Sie den Systemadministrator um wieder Zugang zu erlangen.
+screen.expiredpass.heading=Ihr Kennwort ist abgelaufen.
+screen.expiredpass.message=Bitte <a href="{0}">ändern Sie Ihr Kennwort</a>.
+screen.mustchangepass.heading=Sie müssen Ihr Kennwort ändern.
+screen.mustchangepass.message=Bitte <a href="{0}">ändern Sie Ihr Kennwort</a>.
+screen.badhours.heading=Ihrem Konto ist es nicht gestattet sich zu diesem Zeitpunkt anzumelden.
+screen.badhours.message=Bitte versuchen Sie es später noch einmal.
+screen.badworkstation.heading=Sie können sich von dieser Workstation aus nicht anmelden.
+screen.badworkstation.message=Bitte kontaktieren Sie Ihren System Administrator um Zugriff zu erhalten.
+
+# OAuth
+screen.oauth.confirm.header=Authorisierung
+screen.oauth.confirm.message=Wollen Sie "{0}" vollen Zugriff auf Ihr Profil gestatten?
+screen.oauth.confirm.allow=Erlauben
+
+# Unavailable
+screen.unavailable.heading=CAS ist nicht verf\u00FCgbar
+screen.unavailable.message=Beim Verarbeiten Ihrer Anfrage ist ein Fehler aufgetreten. Bitte informieren Sie Ihren Support oder versuchen Sie es noch einmal.

+ 110 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/messages_es.properties

@@ -0,0 +1,110 @@
+#Author: Joaquin Recio, Jose Luis Huertas, Juan Paulo Soto, and Alex Henrie
+
+#Welcome Screen Messages
+
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+screen.welcome.welcome=\u00a1Felicidades por iniciar CAS correctamente! Para aprender c\u00f3mo autenticar, por favor repase la configuraci\u00f3n del manejador de configuraci\u00f3n por defecto.
+screen.welcome.security=Por razones de seguridad, por favor cierre su sesi\u00f3n y su navegador web cuando haya terminado de acceder a los servicios que requieren autenticaci\u00f3n.
+screen.welcome.instructions=Introduzca su nombre de usuario y contrase\u00f1a.
+screen.welcome.label.netid=Nombre de <span class="accesskey">u</span>suario:
+screen.welcome.label.netid.accesskey=u
+screen.welcome.label.password=<span class="accesskey">C</span>ontrase\u00f1a:
+screen.welcome.label.password.accesskey=c
+screen.welcome.label.warn=<span class="accesskey">A</span>visarme antes de abrir sesi\u00f3n en otros sitios.
+screen.welcome.label.warn.accesskey=a
+screen.welcome.button.login=INICIAR SESI\u00d3N
+screen.welcome.button.clear=LIMPIAR
+
+logo.title=ir a la p\u00e1gina principal de Jasig
+copyright=Copyright &copy; 2005&ndash;2012 Jasig, Inc. Todos los derechos reservados.
+
+# Blocked Errors Page
+screen.blocked.header=Acceso Denegado
+screen.blocked.message=Ha introducido una contrase\u00f1a equivocada por el usuario demasiadas veces. Se le ha restringido.
+
+#Confirmation Screen Messages
+screen.confirmation.message=Haga clic <a href="{0}">aqu\u00ed</a> para ir a la aplicaci\u00f3n.
+
+#Generic Success Screen Messages
+screen.success.header=Inicio de sesi\u00f3n exitoso.
+screen.success.success=Ha iniciado con \u00e9xito su sesi\u00f3n en el Servicio de Autenticaci\u00f3n Central.
+screen.success.security=Por razones de seguridad, por favor cierre su sesi\u00f3n y su navegador web cuando haya terminado de acceder a los servicios que requieren autenticaci\u00f3n.
+
+#Logout Screen Messages
+screen.logout.header=Cierre de sesi\u00f3n exitoso.
+screen.logout.success=Ha cerrado con \u00e9xito su sesi\u00f3n del Servicio de Autenticaci\u00f3n Central.
+screen.logout.security=Por razones de seguridad, cierre su navegador web.
+screen.logout.redirect=El servicio desde el cual ha llegado ha proporcionado un <a href="{0}">enlace que puede seguir por hacer clic aqu\u00ed</a>.
+
+screen.service.sso.error.header=Reautenticaci\u00f3n requerida para acceder a este servicio.
+screen.service.sso.error.message=Intent\u00f3 acceder a un servicio que requiere autenticaci\u00f3n sin reautenticar. Por favor intente <a href="{0}">autenticar de nuevo</a>.
+
+error.invalid.loginticket=No puede intentar reenviar un formulario que ya se ha enviado.
+required.username=El nombre de usuario es un campo requerido.
+required.password=La contrase\u00f1a es un campo requerido.
+
+# Authentication failure messages
+authenticationFailure.AccountDisabledException=Se ha deshabilitado esta cuenta.
+authenticationFailure.AccountLockedException=Se ha bloqueado esta cuenta.
+authenticationFailure.CredentialExpiredException=Su contrase\u00f1a ha caducado.
+authenticationFailure.InvalidLoginLocationException=No puede iniciar sesi\u00f3n desde esta estaci\u00f3n de trabajo.
+authenticationFailure.InvalidLoginTimeException=Est\u00e1 prohibido iniciar sesi\u00f3n con su cuenta en este momento.
+authenticationFailure.AccountNotFoundException=Credenciales inv\u00e1lidos.
+authenticationFailure.FailedLoginException=Credenciales inv\u00e1lidos.
+authenticationFailure.UNKNOWN=Credenciales inv\u00e1lidos.
+
+INVALID_REQUEST_PROXY=ambos de los par\u00e1metros 'pgt' y 'targetService' se requieren
+INVALID_TICKET_SPEC=El ticket fall\u00f3 la especificaci\u00f3n de validaci\u00f3n. Los errores posibles pueden incluir intentar validar un ticket de proxy mediante un validador de tickets de servei, o no cumplir con la petici\u00f3n de renovaci\u00f3n (renew true).
+INVALID_REQUEST=ambos de los par\u00e1metros 'service' y 'ticket' se requieren
+INVALID_TICKET=No se ha reconocido el ticket ''{0}''
+INVALID_SERVICE=Ticket ''{0}'' no coincide con el servicio proporcionado. El servicio original era ''{1}'' y el servicio proporcionado era ''{2}''.
+INVALID_PROXY_CALLBACK=La direcci\u00f3n web de retrollamada de proxy ''{0}'' no se pudo autenticar.
+UNAUTHORIZED_SERVICE_PROXY=El servicio proporcionado ''{0}'' no est\u00e1 autorizado a usar la autenticaci\u00f3n de proxy CAS.
+
+screen.service.error.header=Aplicaci\u00f3n no autorizada a usar CAS
+screen.service.error.message=La aplicaci\u00f3n que usted ha intentado autenticar no est\u00e1 autorizada a usar CAS.
+screen.service.empty.error.message=El registro de servicios del CAS est\u00e1 vac\u00edo y no tiene definiciones de servicio. \
+Las aplicaciones que quieren autenticar con CAS deben ser explic\u00edtamente definidas en el registro de servcios.
+
+# Password policy
+password.expiration.warning=Su contrase\u00f1a caduca en {0} d\u00edas. Por favor <a href="{1}">cambie su contrase\u00f1a</a> ahora.
+password.expiration.loginsRemaining=Tiene {0} inicios de sesi\u00f3n restantes antes que <strong>DEBE</strong> cambiar su contrase\u00f1a.
+screen.accountdisabled.heading=Se ha deshabilitado esta cuenta.
+screen.accountdisabled.message=Por favor contacte al administrador de sistema para recobrar el acceso.
+screen.accountlocked.heading=Se ha bloqueado esta cuenta.
+screen.accountlocked.message=Por favor contacte al administrador de sistema para recobrar el acceso.
+screen.expiredpass.heading=Su contrase\u00f1a ha caducado.
+screen.expiredpass.message=Por favor <a href="{0}">cambie su contrase\u00f1a</a>.
+screen.mustchangepass.heading=Debe cambiar su contrase\u00f1a.
+screen.mustchangepass.message=Por favor <a href="{0}">cambie su contrase\u00f1a</a>.
+screen.badhours.heading=Est\u00e1 prohibido iniciar sesi\u00f3n con su cuenta en este momento.
+screen.badhours.message=Por favor intente m\u00e1s tarde.
+screen.badworkstation.heading=No puede iniciar sesi\u00f3n desde esta estaci\u00f3n de trabajo.
+screen.badworkstation.message=Por favor contacte al administrador de sistema para recobrar el acceso.
+
+# OAuth
+screen.oauth.confirm.header=Autorizaci\u00f3n
+screen.oauth.confirm.message=\u00bfQuiere conceder acceso a su perfil completo a "{0}"?
+screen.oauth.confirm.allow=Permitir
+
+# Unavailable
+screen.unavailable.heading=CAS no est\u00e1 disponible
+screen.unavailable.message=Hubo un error al intentar cumplir con su petici\u00f3n. Por favor notifique a su servicio de asistencia o intente otra vez.

+ 71 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/messages_fa.properties

@@ -0,0 +1,71 @@
+#Welcome Screen Messages
+
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+screen.welcome.welcome=<span dir='rtl'>\u0645\u0648\u0641\u0642 \u0634\u062F\u06CC\u062F CAS \u0631\u0627 \u0628\u0647 \u0635\u0648\u0631\u062A \u0622\u0646\u0644\u0627\u06CC\u0646 \u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC \u06A9\u0646\u06CC\u062F! \u0645\u062F\u06CC\u0631 \u062A\u0627\u06CC\u06CC\u062F \u067E\u06CC\u0634 \u0641\u0631\u0636\u060C \u062A\u0627\u06CC\u06CC\u062F \u0645\u06CC\u06A9\u0646\u062F \u0686\u0647 \u0632\u0645\u0627\u0646\u06CC \u0646\u0627\u0645 \u06A9\u0627\u0631\u0628\u0631\u06CC \u0648 \u0631\u0645\u0632 \u0648\u0631\u0648\u062F \u0647\u0645\u062E\u0648\u0627\u0646\u06CC \u062F\u0627\u0631\u0646\u062F: \u0645\u0631\u0627\u062D\u0644 \u0631\u0627 \u0627\u062F\u0627\u0645\u0647 \u062F\u0647\u06CC\u062F \u0648 \u0627\u0645\u062A\u062D\u0627\u0646 \u06A9\u0646\u06CC\u062F.</span>
+screen.welcome.security=<span dir='rtl'>\u0628\u0647 \u062F\u0644\u0627\u06CC\u0644 \u0627\u0645\u0646\u06CC\u062A\u06CC \u0632\u0645\u0627\u0646\u06CC \u06A9\u0647 \u062F\u06CC\u06AF\u0631 \u0646\u06CC\u0627\u0632\u06CC \u0628\u0647 \u062F\u0633\u062A\u06CC\u0627\u0628\u06CC \u0628\u0647 \u0633\u0631\u0648\u06CC\u0633\u0647\u0627\u06CC\u06CC \u06A9\u0647 \u0627\u062D\u062A\u06CC\u0627\u062C \u0628\u0647 \u062A\u0627\u06CC\u06CC\u062F \u062F\u0627\u0631\u0646\u062F \u0646\u062F\u0627\u0634\u062A\u06CC\u062F\u060C \u0627\u0632 \u067E\u0627\u06CC\u06AF\u0627\u0647 \u062E\u0627\u0631\u062C \u0634\u062F\u0647 \u0645\u0631\u0648\u0631\u06AF\u0631 \u062E\u0648\u062F \u0631\u0627 \u0628\u0628\u0646\u062F\u06CC\u062F!</span>
+screen.welcome.instructions=<span dir='rtl'>\u0646\u0627\u0645 \u06A9\u0627\u0631\u0628\u0631\u06CC \u0648 \u0631\u0645\u0632 \u0648\u0631\u0648\u062F \u0631\u0627 \u0648\u0627\u0631\u062F \u06A9\u0646\u06CC\u062F</span>
+screen.welcome.label.netid=<span dir='rtl'>\u0646\u0627\u0645 \u06A9\u0627\u0631\u0628\u0631\u06CC</span>
+screen.welcome.label.netid.accesskey=
+screen.welcome.label.password=<span dir='rtl'>\u0631\u0645\u0632 \u0648\u0631\u0648\u062F</span>
+screen.welcome.label.password.accesskey=
+screen.welcome.label.warn=<span dir='rtl'>\u0642\u0628\u0644 \u0627\u0632 \u0648\u0631\u0648\u062F \u0628\u0647 \u0633\u0627\u06CC\u062A\u0647\u0627\u06CC \u062F\u06CC\u06AF\u0631 \u0628\u0647 \u0645\u0646 \u0647\u0634\u062F\u0627\u0631 \u0628\u062F\u0647</span>
+screen.welcome.label.warn.accesskey=
+screen.welcome.button.login=\u0648\u0631\u0648\u062F
+screen.welcome.button.clear=\u0627\u0646\u0635\u0631\u0627\u0641
+
+logo.title=\u0628\u0647 \u0635\u0641\u062D\u0647 \u0627\u0635\u0644\u06CC Jasig \u0628\u0631\u0648
+copyright=<span dir='rtl'>\u062D\u0642 \u0646\u0634\u0631 &copy; 2005 - 2012 Jasig, Inc. \u06A9\u0644\u06CC\u0647 \u062D\u0642\u0648\u0642 \u0645\u062D\u0641\u0648\u0638 \u0627\u0633\u062A</span>
+
+# Blocked Errors Page
+screen.blocked.header=<span dir='rtl'>\u062F\u0633\u062A\u0631\u0633\u06CC \u0645\u0645\u06A9\u0646 \u0646\u06CC\u0633\u062A</span>
+screen.blocked.message=<span dir='rtl'>\u0628\u0647 \u062F\u0641\u0639\u0627\u062A \u0628\u0631\u0627\u06CC \u0646\u0627\u0645 \u06A9\u0627\u0631\u0628\u0631\u06CC\u060C \u0631\u0645\u0632 \u0648\u0631\u0648\u062F \u0631\u0627 \u0627\u0634\u062A\u0628\u0627\u0647 \u0648\u0627\u0631\u062F \u06A9\u0631\u062F\u0647\u0627\u06CC\u062F. \u0627\u0632 \u0648\u0631\u0648\u062F \u0634\u0645\u0627 \u062C\u0644\u0648\u06AF\u06CC\u0631\u06CC \u0634\u062F\u0647 \u0627\u0633\u062A.</span>
+
+#Confirmation Screen Messages
+screen.confirmation.message=<span dir='rtl'>\u0628\u0631\u0627\u06CC \u0648\u0631\u0648\u062F \u0628\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 </a>\u0627\u06CC\u0646\u062C\u0627<a href=\u201D{0}\u201D> \u0631\u0627 \u06A9\u0644\u06CC\u06A9 \u06A9\u0646\u06CC\u062F</span>
+
+#Generic Success Screen Messages
+screen.success.header=<span dir='rtl'>\u0648\u0631\u0648\u062F \u0645\u0648\u0641\u0642\u06CC\u062A \u0622\u0645\u06CC\u0632 \u0628\u0648\u062F</span>
+screen.success.success=<span dir='rtl'>\u0628\u0627 \u0645\u0648\u0641\u0642\u06CC\u062A \u0648\u0627\u0631\u062F \u067E\u0627\u06CC\u06AF\u0627\u0647 \u062A\u0627\u06CC\u06CC\u062F \u0645\u0631\u06A9\u0632\u06CC CAS  \u0634\u062F\u06CC\u062F</span>
+screen.success.security=<span dir='rtl'>\u0628\u0647 \u062F\u0644\u0627\u06CC\u0644 \u0627\u0645\u0646\u06CC\u062A\u06CC \u0632\u0645\u0627\u0646\u06CC \u06A9\u0647 \u062F\u06CC\u06AF\u0631 \u0646\u06CC\u0627\u0632\u06CC \u0628\u0647 \u062F\u0633\u062A\u06CC\u0627\u0628\u06CC \u0628\u0647 \u0633\u0631\u0648\u06CC\u0633 \u0647\u0627\u06CC\u06CC \u06A9\u0647 \u0627\u062D\u062A\u06CC\u0627\u062C \u0628\u0647 \u062A\u0627\u06CC\u06CC\u062F \u062F\u0627\u0631\u0646\u062F \u0646\u062F\u0627\u0634\u062A\u06CC\u062F\u060C \u0627\u0632 \u067E\u0627\u06CC\u06AF\u0627\u0647 \u062E\u0627\u0631\u062C \u0634\u062F\u0647 \u0645\u0631\u0648\u0631\u06AF\u0631 \u062E\u0648\u062F \u0631\u0627 \u0628\u0628\u0646\u062F\u06CC\u062F!</span>
+
+#Logout Screen Messages
+screen.logout.header=<span dir='rtl'>\u062E\u0631\u0648\u062C \u0627\u0632 \u067E\u0627\u06CC\u06AF\u0627\u0647 \u0645\u0648\u0641\u0642\u06CC\u062A \u0622\u0645\u06CC\u0632 \u0628\u0648\u062F</span>
+screen.logout.success=<span dir='rtl'>\u0628\u0627 \u0645\u0648\u0641\u0642\u06CC\u062A \u0627\u0632 \u067E\u0627\u06CC\u06AF\u0627\u0647 \u062A\u0627\u06CC\u06CC\u062F \u0645\u0631\u06A9\u0632\u06CC CAS \u062E\u0627\u0631\u062C \u0634\u062F\u06CC\u062F</span>
+screen.logout.security=<span dir='rtl'>\u0628\u0631\u0627\u06CC \u062D\u0641\u0638 \u0627\u0645\u0646\u06CC\u062A \u0627\u0632 \u0645\u0631\u0648\u0631\u06AF\u0631 \u062E\u0648\u062F \u062E\u0627\u0631\u062C \u0634\u0648\u06CC\u062F</span>
+screen.logout.redirect=<span dir='rtl'>\u0633\u0631\u0648\u06CC\u0633\u06CC \u0627\u0631\u062C\u0627\u0639 \u062F\u0647\u0646\u062F\u0647 \u0634\u0645\u0627 </a>\u0627\u06CC\u0646 \u0644\u06CC\u0646\u06A9<a href="{0}"> \u0631\u0627 \u062A\u0648\u0644\u06CC\u062F \u06A9\u0631\u062F\u0647 \u0627\u0633\u062A. \u0628\u0631\u0627\u06CC \u0627\u062F\u0627\u0645\u0647 \u0644\u06CC\u0646\u06A9 \u0631\u0627 \u06A9\u0644\u06CC\u06A9 \u06A9\u0646\u06CC\u062F.</span>
+
+screen.service.sso.error.header=<span dir='rtl'>\u0628\u0631\u0627\u06CC \u062F\u0633\u062A\u0631\u0633\u06CC \u0628\u0647 \u0627\u06CC\u0646 \u0633\u0631\u0648\u06CC\u0633 \u0646\u06CC\u0627\u0632 \u0628\u0647 \u062A\u0627\u06CC\u06CC\u062F \u062F\u0648\u0628\u0627\u0631\u0647 \u062F\u0627\u0631\u06CC\u062F</span>
+screen.service.sso.error.message=<span dir='rtl'>\u0633\u0639\u06CC \u062F\u0627\u0634\u062A\u06CC\u062F \u0628\u062F\u0648\u0646 \u062A\u0627\u06CC\u06CC\u062F \u062F\u0648\u0628\u0627\u0631\u0647\u060C \u0628\u0647 \u0633\u0631\u0648\u06CC\u0633\u06CC \u062F\u0633\u062A\u0631\u0633\u06CC \u067E\u06CC\u062F\u0627 \u06A9\u0646\u06CC\u062F \u06A9\u0647 \u0646\u06CC\u0627\u0632 \u0628\u0647 \u062A\u0627\u06CC\u06CC\u062F \u062F\u0627\u0631\u062F. \u0644\u0637\u0641\u0627\u064B \u0628\u0639\u062F \u0627\u0632 </a>\u062A\u0627\u06CC\u06CC\u062F <a href=\u201D{0}\u201D> \u062F\u0648\u0628\u0627\u0631\u0647 \u0627\u0645\u062A\u062D\u0627\u0646 \u06A9\u0646\u06CC\u062F</span>
+
+error.invalid.loginticket=\u0646\u0645\u06CC\u062A\u0648\u0627\u0646\u06CC\u062F \u0641\u0631\u0645\u06CC \u06A9\u0647 \u0627\u0631\u0633\u0627\u0644 \u0634\u062F\u0647 \u0631\u0627 \u062F\u0648\u0628\u0627\u0631\u0647 \u0627\u0631\u0633\u0627\u0644 \u06A9\u0646\u06CC\u062F
+required.username=\u0648\u0627\u0631\u062F \u06A9\u0631\u062F\u0646 \u0646\u0627\u0645 \u06A9\u0627\u0631\u0628\u0631\u06CC \u0627\u0644\u0632\u0627\u0645\u06CC \u0627\u0633\u062A
+required.password=\u0648\u0627\u0631\u062F \u06A9\u0631\u062F\u0646 \u0631\u0645\u0632 \u0648\u0631\u0648\u062F \u0627\u0644\u0632\u0627\u0645\u06CC \u0627\u0633\u062A
+error.authentication.credentials.bad=\u0646\u0627\u0645 \u06A9\u0627\u0631\u0628\u0631\u06CC \u0648 \u0631\u0645\u0632 \u0648\u0631\u0648\u062F \u0635\u062D\u06CC\u062D \u0646\u0645\u06CC\u0628\u0627\u0634\u062F
+error.authentication.credentials.unsupported=>CAS \u0627\u06CC\u0646 \u0646\u0627\u0645 \u06A9\u0627\u0631\u0628\u0631\u06CC \u0648 \u0631\u0645\u0632 \u0648\u0631\u0648\u062F \u0631\u0627 \u067E\u0634\u062A\u06CC\u0627\u0646\u06CC \u0646\u0645\u06CC\u06A9\u0646\u062F
+
+INVALID_REQUEST_PROXY=\u067E\u0627\u0631\u0627\u0645\u062A\u0631\u0647\u0627\u06CC pgt  \u0648 targetService \u0647\u0631 \u062F\u0648 \u0627\u0644\u0632\u0627\u0645\u06CC \u0647\u0633\u062A\u0646\u062F
+INVALID_TICKET_SPEC=\u0634\u0646\u0627\u0633\u0647 \u0645\u0648\u0631\u062F \u062A\u0627\u06CC\u06CC\u062F \u0642\u0631\u0627\u0631 \u0646\u06AF\u0631\u0641\u062A. \u062E\u0637\u0627\u0647\u0627\u06CC \u0645\u0645\u06A9\u0646 \u0645\u06CC\u062A\u0648\u0627\u0646\u062F \u0634\u0627\u0645\u0644 \u0633\u0639\u06CC \u062F\u0631 \u0645\u0648\u0631\u062F \u062A\u0627\u06CC\u06CC\u062F \u0642\u0631\u0627\u0631 \u062F\u0627\u062F\u0646 \u0634\u0646\u0627\u0633\u0647-\u06CC \u067E\u0631\u0627\u06A9\u0633\u06CC \u0627\u0632 \u0637\u0631\u06CC\u0642 \u0633\u06CC\u0633\u062A\u0645 \u062A\u0627\u06CC\u06CC\u062F \u06A9\u0646\u0646\u062F\u0647\u06CC \u0634\u0646\u0627\u0633\u0647\u06CC \u0633\u0631\u0648\u06CC\u0633 \u06CC\u0627 \u0647\u0645\u062E\u0648\u0627\u0646\u06CC \u0646\u062F\u0627\u0634\u062A\u0646 \u0628\u0627 \u062F\u0631\u062E\u0648\u0627\u0633\u062A \u062A\u062C\u062F\u06CC\u062F \u0634\u062F\u0647 \u0628\u0627\u0634\u062F.
+INVALID_REQUEST=\u067E\u0627\u0631\u0627\u0645\u062A\u0631\u0647\u0627\u06CC service\u0648 ticket \u0647\u0631 \u062F\u0648 \u0627\u0644\u0632\u0627\u0645\u06CC \u0647\u0633\u062A\u0646\u062F
+INVALID_TICKET=\u0634\u0646\u0627\u0633\u0647 {0} \u0634\u0646\u0627\u0633\u0627\u06CC\u06CC \u0646\u0634\u062F
+INVALID_SERVICE=\u0634\u0646\u0627\u0633\u0647 {0} \u0628\u0627 \u0633\u0631\u0648\u06CC\u0633 \u0639\u0631\u0636\u0647 \u0634\u062F\u0647 \u0647\u0645\u062E\u0648\u0627\u0646\u06CC \u0646\u062F\u0627\u0631\u062F. \u0633\u0631\u0648\u06CC\u0633 \u0627\u0635\u0644\u06CC{1}  \u0648 \u0633\u0631\u0648\u06CC\u0633 \u0639\u0631\u0636\u0647 \u0634\u062F\u0647{2} \u0628\u0648\u062F\u0647 \u0627\u0633\u062A.
+
+screen.service.error.header=<span dir='rtl'>\u0628\u0631\u0646\u0627\u0645\u0647 \u0628\u0631\u0627\u06CC \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0627\u0632 CAS \u062A\u0627\u06CC\u06CC\u062F \u0646\u0634\u062F\u0647 \u0627\u0633\u062A</span>
+screen.service.error.message=<span dir='rtl'>\u0628\u0631\u0646\u0627\u0645\u0647\u0627\u06CC \u06A9\u0647 \u0633\u0639\u06CC \u062F\u0631 \u062A\u0627\u06CC\u06CC\u062F \u0622\u0646 \u062F\u0627\u0634\u062A\u06CC\u062F\u060C \u0628\u0631\u0627\u06CC \u0627\u0633\u062A\u0641\u0627\u062F\u0647 \u0627\u0632 CAS \u0645\u0639\u062A\u0628\u0631 \u0646\u06CC\u0633\u062A.</span>

+ 112 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/messages_fr.properties

@@ -0,0 +1,112 @@
+#Author: Pascal Aubry <pascal.aubry@univ-rennes1.fr>
+#Version: $Revision$ $Date$
+#Since: 3.0.4
+
+#Welcome Screen Messages
+
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+screen.welcome.welcome=Félicitations, votre serveur est en ligne ! Pour savoir comment vous authentifier, merci de regarder la méthode d'authentification définie par défaut.
+screen.welcome.security=Pour des raisons de sécurité, veuillez vous déconnecter et fermer votre navigateur lorsque vous avez fini d'accéder aux services authentifiés.
+screen.welcome.instructions=Entrez votre identifiant et votre mot de passe.
+screen.welcome.label.netid=<span class="accesskey">I</span>dentifiant:
+screen.welcome.label.netid.accesskey=i
+screen.welcome.label.password=<span class="accesskey">M</span>ot de passe:
+screen.welcome.label.password.accesskey=m
+screen.welcome.label.warn=<span class="accesskey">P</span>révenez-moi avant d'accéder à d'autres services.
+screen.welcome.label.warn.accesskey=p
+screen.welcome.button.login=SE CONNECTER
+screen.welcome.button.clear=EFFACER
+
+logo.title=allez à la page d'accueil Jasig
+copyright=Copyright &copy; 2005&ndash;2012 Jasig, Inc. Tous droits réservés.
+
+# Blocked Errors Page
+screen.blocked.header=Accès non autorisé
+screen.blocked.message=Vous avez saisi un mauvais mot de passe trop de fois de suite. Vous avez été rejeté.
+
+#Confirmation Screen Messages
+screen.confirmation.message=Cliquez <a href="{0}">ici</a> pour accéder au service.
+
+#Generic Success Screen Messages
+screen.success.header=Connexion réussie
+screen.success.success=Vous vous êtes authentifié(e) auprès du Service Central d'Authentification.
+screen.success.security=Pour des raisons de sécurité, veuillez vous déconnecter et fermer votre navigateur lorsque vous avez fini d'accéder aux services authentifiés.
+
+#Logout Screen Messages
+screen.logout.header=Déconnexion réussie
+screen.logout.success=Vous vous êtes déconnecté(e) du Service Central d'Authentification.
+screen.logout.security=Pour des raisons de sécurité, veuillez fermer votre navigateur.
+screen.logout.redirect=Le service duquel vous arrivez a fourni un <a href="{0}">lien que vous pouvez suivre en cliquant ici</a>.
+
+screen.service.sso.error.header=Une nouvelle authentification est requise pour accéder à ce service.
+screen.service.sso.error.message=Vous avez tenté d'accéder à un service qui requiert une nouvelle authentification sans vous authentifier à nouveau.  Veuillez <a href="{0}">vous authentifier de nouveau</a>.
+
+error.invalid.loginticket=Vous ne pouvez pas re-soumettre un formulaire d'autentification qui a déjà été soumis.
+required.username=Vous devez entrer votre identifiant.
+required.password=Vous devez entrer votre mot de passe.
+
+# Authentication failure messages
+authenticationFailure.AccountDisabledException=Votre compte a été désactivé.
+authenticationFailure.AccountLockedException=Votre compte est bloqué.
+authenticationFailure.CredentialExpiredException=Votre mot de passe a expiré.
+authenticationFailure.InvalidLoginLocationException=Vous ne pouvez pas vous authentifier depuis cet ordinateur.
+authenticationFailure.InvalidLoginTimeException=Vous ne pouvez pas vous authentifier pendant cette période.
+authenticationFailure.AccountNotFoundException=Mauvais identifiant / mot de passe.
+authenticationFailure.FailedLoginException=Mauvais identifiant / mot de passe.
+authenticationFailure.UNKNOWN=Mauvais identifiant / mot de passe.
+
+INVALID_REQUEST_PROXY=Les paramètres 'pgt' et 'targetService' sont tous deux nécessaires
+INVALID_TICKET_SPEC=La validation du ticket est impossible. Les raisons possibles peuvent être la validation d'un Proxy Ticket sur une URL de validation de Service Ticket, ou une mauvaise requête de type renew.
+INVALID_REQUEST=Les paramètres 'service' et 'ticket' sont tous deux nécessaires
+INVALID_TICKET=Le ticket ''{0}'' est inconnu
+INVALID_SERVICE=Le ticket ''{0}'' ne correspond pas au service demandé. Le service original était ''{1}'' et le service demandé était ''{2}''.
+INVALID_PROXY_CALLBACK=L''url de rappel du proxy ''{0}'' n''a pu être authentifiée.
+UNAUTHORIZED_SERVICE_PROXY=Le service utilisé ''{0}'' n''est pas autorisé à utiliser l''authentification proxy CAS.
+
+screen.service.error.header=Application non autorisée à utiliser CAS
+screen.service.error.message=L'application pour laquelle vous avez tenté de vous authentifier n'est pas autorisée à utiliser CAS.
+screen.service.empty.error.message=Aucun service CAS n'a été défini. \
+Les applications qui veulent s'authentifier sur CAS doivent explicitement s'enregistrer dans la base des services.
+
+# Password policy
+password.expiration.warning=Votre mot de passe expire dans {0} jour(s). Merci de <a href="{1}">changer votre mot de passe</a> maintenant.
+password.expiration.loginsRemaining=Il vous reste {0} authentification(s) avant de <strong>DEVOIR</strong> changer votre mot de passe.
+screen.accountdisabled.heading=Ce compte a été désactivé.
+screen.accountdisabled.message=Merci de contacter votre administrateur système pour récupérer votre accès.
+screen.accountlocked.heading=Votre compte a été bloqué.
+screen.accountlocked.message=Merci de contacter votre administrateur pour le débloquer.
+screen.expiredpass.heading=Votre mot de passe a expiré.
+screen.expiredpass.message=Merci de <a href="{0}">changer votre mot de passe</a>.
+screen.mustchangepass.heading=Vous devez changer votre mot de passe.
+screen.mustchangepass.message=Merci de <a href="{0}">changer votre mot de passe</a>.
+screen.badhours.heading=Vous ne pouvez pas vous authentifier durant cette plage horaire.
+screen.badhours.message=Merci de réessayer plus tard.
+screen.badworkstation.heading=Vous ne pouvez pas vous authentifier depuis cet ordinateur.
+screen.badworkstation.message=Merci de contacter votre administrateur système pour récupérer votre accès.
+
+# OAuth
+screen.oauth.confirm.header=Autorisation
+screen.oauth.confirm.message=Voulez-vous donner l'accès de votre profil complet à "{0}" ?
+screen.oauth.confirm.allow=Autoriser
+
+# Unavailable
+screen.unavailable.heading=CAS est indisponible
+screen.unavailable.message=Une erreur s'est produite lors du traitement de votre requête. Merci de contacter votre support ou de réessayer.

+ 70 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/messages_hr.properties

@@ -0,0 +1,70 @@
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# @author Nebojsa Topolscak <topsi at srce dot hr>
+# @author Jasmina Plavac
+# University Computing Center - Zagreb, Croatia
+# @since 3.1.1
+
+#Welcome Screen Messages
+
+screen.welcome.welcome=\u010cestitamo na uspje\u0161noj instalaciji CAS-a! Inicijalni autentikacijski mehanizam obavlja uspje\u0161nu autentikaciju uno\u0161enjem korisni\u010dkog imena i zaporke iste vrijednosti. Isprobajte!
+screen.welcome.security=Iz sigurnosnih razloga molimo vas da se odjavite i zatvorite web preglednik nakon \u0161to zavr\u0161ite s radom u aplikacijama koje zahtijevaju autentikaciju.
+screen.welcome.instructions=Unesite korisni\u010dko ime i zaporku.
+screen.welcome.label.netid=<span class="accesskey">K</span>orisni\u010dko ime:
+screen.welcome.label.netid.accesskey=k
+screen.welcome.label.password=<span class="accesskey">Z</span>aporka:
+screen.welcome.label.password.accesskey=z
+screen.welcome.label.warn=<span class="accesskey">U</span>pozori me prije prijave u druge aplikacije.
+screen.welcome.label.warn.accesskey=u
+screen.welcome.button.login=PRIJAVA
+screen.welcome.button.clear=PONI\u0160TI
+
+#Confirmation Screen Messages
+screen.confirmation.message=Pritisnite <a href="{0}">ovdje</a> za ulaz u aplikaciju.
+
+#Generic Success Screen Messages
+screen.success.header=Uspje\u0161na prijava
+screen.success.success=Uspje\u0161no ste se prijavili u Centralni autentikacijski servis.
+screen.success.security=Iz sigurnosnih razloga molimo vas da se odjavite i zatvorite web preglednik nakon \u0161to zavr\u0161ite s radom u aplikacijama koje zahtijevaju autentikaciju.
+
+#Logout Screen Messages
+screen.logout.header=Uspje\u0161na odjava
+screen.logout.success=Uspje\u0161no ste se odjavili iz Centralnog autentikacijskog servisa
+screen.logout.security=Iz sigurnosnih razloga zatvorite web preglednik.
+screen.logout.redirect=Servis pomo\u0107u kojeg ste do\u0161li na straice CAS-a prenio je link koji mo\u017eete slijediti pritiskom <a href="{0}">ovdje</a>.
+
+screen.service.sso.error.header=Za pristup ovom servisu potrebna je ponovna autentikacija.
+screen.service.sso.error.message=Poku\u0161ali ste pristupiti servisu koji zahtijeva autentikaciju, pri \u010demu se niste ponovno autenticirali. Molimo vas poku\u0161ajte se ponovno autenticirati pritiskom <a href="{0}">ovdje</a>.
+
+error.invalid.loginticket=Sadr\u017eaj forme ve\u0107 je poslan. Ponovno slanje nije dozvoljeno.
+required.username=Korisni\u010dko ime je obavezno polje.
+required.password=Zaporka je obavezno polje.
+error.authentication.credentials.bad=Korisni\u010dko ime i(li) zaporka nisu ispravni.
+error.authentication.credentials.unsupported=CAS ne podr\u017eava ovaj na\u010din autentikacije.
+
+INVALID_REQUEST_PROXY=Parametri 'pgt' i 'targetService' su obavezni.
+INVALID_TICKET_SPEC=Ticket nije pro\u0161ao provjeru ispravnosti. Ova pogre\u0161ka mo\u017ee upu\u0107ivati na poku\u0161aj provjere ispravnosti Proxy Ticketa pomo\u0107u Service Ticket validatora ili na neudovoljavanje zahtjevu uz parametar renew=true.
+
+INVALID_REQUEST=Parametri 'service' i 'ticket' su obavezni
+INVALID_TICKET=Ticket ''{0}'' nije prepoznat.
+INVALID_SERVICE=Ticket ''{0}'' ne odgovara ovom servisu. Orginalni servis bio je ''{1}'', a isporu\u010deni servis bio je ''{2}''.
+
+screen.service.error.header=Aplikacija nije autorizirana za uporabu CAS-a
+screen.service.error.message=Aplikacia u koju ste se poku\u0161ali prijaviti nije autorizirana za uporabu CAS-a.

+ 103 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/messages_it.properties

@@ -0,0 +1,103 @@
+#Author: Roberto Cosenza http://robcos.com
+#Version: $Revision$ $Date$
+#Since: 3.0.5
+
+#Welcome Screen Messages
+
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+screen.welcome.welcome=Benvenuti al Central Authentication Service (CAS).
+screen.welcome.security=Per motivi di sicurezza dovresti effettuare il logout e chiudere tutte le finestre del browser quando hai finito di utilizzare servizi che necessitano autenticazione.
+screen.welcome.instructions=Inserisci login e password
+screen.welcome.label.netid=<span class="accesskey">L</span>ogin:
+screen.welcome.label.netid.accesskey=L
+screen.welcome.label.password=<span class="accesskey">P</span>assword:
+screen.welcome.label.password.accesskey=P
+screen.welcome.label.warn=<span class="accesskey">A</span>vvisami prima di autenticarmi su un altro sito
+screen.welcome.label.warn.accesskey=A
+screen.welcome.button.login=LOGIN
+screen.welcome.button.clear=ANNULLA
+
+# Blocked Errors Page
+screen.blocked.header=Accesso Negato
+screen.blocked.message=È stata inserita la password sbagliata troppe volte. L'account è stato bloccato.
+
+#Confirmation Screen Messages
+screen.confirmation.message=Clicca <a href="{0}">quí</a> per accedere al servizio.
+
+#Generic Success Screen Messages
+screen.success.header=Login eseguito correttamente
+screen.success.success=Hai effettuato il login al Central Authentication Service.
+screen.success.security=Per motivi di sicurezza dovresti effettuare il logout e chiudere tutte le finestre del browser quando hai finito di utilizzare servizi che necessitano autenticazione.
+
+#Logout Screen Messages
+screen.logout.header=Logout effettuato con successo
+screen.logout.success=Hai correttamente effettuato il logout dal Central Authentication Service.
+screen.logout.security=Per motivi di sicurezza, si consiglia di chiudere tutte le finestre del browser.
+screen.logout.redirect=Puoi rifare il login cliccando <a href="{0}">quì</a>
+
+screen.service.sso.error.header=È necessario effettuare nuovamente l'autenticazione per avere l'accesso a questo servizio
+screen.service.sso.error.message=Si è tentato di accedere a un servizio che richiede di effettuare nuovamente l'autenticazione. Si prega di <a href="{0}">autenticarsi nuovamente</a>.
+
+error.invalid.loginticket=Ricompila il form dall'inizio senza utilizzare il tasto 'indietro'
+required.username=Il campo login é obbligatorio
+required.password=Il campo password é obbligatorio
+error.authentication.credentials.bad=Login o password errate
+error.authentication.credentials.unsupported=Le credenziali utilizzate non sono supportate da CAS
+
+INVALID_REQUEST_PROXY=I parametri 'pgt' e 'targetService' sono entrambi obbligatori
+INVALID_TICKET_SPEC=La convalida del Ticket non ha avuto successo. Una possibile causa di errore potrebbe essere il tentativo di convalidare un Proxy Ticket via un Service Ticket validator.
+INVALID_REQUEST=I parametri 'service' e 'ticket' sono entrambi obbligatori
+INVALID_TICKET=Il ticket ''{0}'' non é stato riconosciuto
+INVALID_SERVICE=Il ticket ''{0}'' non corrisponde a nessun servizio disponibile
+
+#Service Error Messages
+screen.service.error.header=Servizio non autorizzato.
+screen.service.error.message=Il servizio a cui stai cercando di accedere non é configurato per CAS
+
+# LPPE Account Error
+screen.accounterror.password.message=La data di rinnovo della password non è specificata, è scaduta o non valida. Si prega di contattare l'amministratore di sistema per recuperare le credenziali di accesso.
+
+# LPPE Account Disabled
+screen.accountdisabled.heading=Questo account è disabilitato.
+screen.accountdisabled.message=Si prega di contattare l'amministratore di sistema per recuperare le credenziali di accesso.
+
+# LPPE Password Expired
+screen.expiredpass.heading=La vostra password è scaduta.
+screen.expiredpass.message=Si prega di <a href="{0}">cambiare la password</a>.
+
+# LPPE Password Must be changed
+screen.mustchangepass.heading=La password deve essere cambiata.
+screen.mustchangepass.message=Si prega di <a href="{0}">cambiare la password</a>.
+
+# LPPE Login out of authorized hours
+screen.badhours.heading=Non si è autorizzati a effettuare il login a quest'ora.
+screen.badhours.message=Si prega di riprovare più tardi.
+
+# LPPE Login out of authorized workstations
+screen.badworkstation.heading=Non si è autorizzati a effettuare il login da questa postazione.
+screen.badworkstation.message=Si prega di conttattare l'amministratore di sistema per recuperare le credenziali d'accesso.
+
+# LPPE Password Warning
+screen.warnpass.heading.today=La vostra password scade oggi!
+screen.warnpass.heading.tomorrow=La vostra password scade domani!
+screen.warnpass.heading.other=La vostra password scade tra {0} giorni.
+screen.warnpass.message.line1=Si prega di <a href="{0}">cambiare la password</a> ora.
+screen.warnpass.message.line2=E in corso la redirezione automatica verso la vostra <a href="{0}">applicazione</a> tra 10 secondi.

+ 72 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/messages_ja.properties

@@ -0,0 +1,72 @@
+#Author: Shoji Kajita <kajita@nagoya-u.jp>
+#Version: $Revision$ $Date$
+#Since: 3.1
+
+#Welcome Screen Messages
+
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+screen.welcome.welcome=\u304a\u3081\u3067\u3068\u3046\u3054\u3056\u3044\u307e\u3059! CAS \u3092\u30aa\u30f3\u30e9\u30a4\u30f3\u306b\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3057\u305f\uff0e\u30c7\u30d5\u30a9\u30eb\u30c8\u306e\u8a8d\u8a3c\u30cf\u30f3\u30c9\u30e9\u3067\u306f\uff0c\u30e6\u30fc\u30b6\u540d\u3068\u30d1\u30b9\u30ef\u30fc\u30c9\u304c\u540c\u3058\u3068\u304d\u306b\u8a8d\u8a3c\u3055\u308c\u307e\u3059\uff0e\u305c\u3072\uff0c\u304a\u8a66\u3057\u304f\u3060\u3055\u3044\uff0e
+screen.welcome.security=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u4e0a\u306e\u7406\u7531\u304b\u3089\uff0c\u8a8d\u8a3c\u304c\u5fc5\u8981\u306a\u30b5\u30fc\u30d3\u30b9\u306e\u30a2\u30af\u30bb\u30b9\u7d42\u4e86\u6642\u306b\u306f\uff0c\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u3092\u30ed\u30b0\u30a2\u30a6\u30c8\u3057\uff0c\u7d42\u4e86\u3057\u3066\u304f\u3060\u3055\u3044\uff0e
+screen.welcome.instructions=\u30cd\u30c3\u30c8ID \u304a\u3088\u3073\u30d1\u30b9\u30ef\u30fc\u30c9\u3092\u5165\u529b\u3057\u3066\u304f\u3060\u3055\u3044
+screen.welcome.label.netid=\u30cd\u30c3\u30c8ID:
+screen.welcome.label.netid.accesskey=n
+screen.welcome.label.password=\u30d1\u30b9\u30ef\u30fc\u30c9:
+screen.welcome.label.password.accesskey=p
+screen.welcome.label.warn=\u4ed6\u306e\u30b5\u30a4\u30c8\u306b\u30ed\u30b0\u30a4\u30f3\u3059\u308b\u524d\u306b\u8b66\u544a\u3092\u51fa\u3059\uff0e
+screen.welcome.label.warn.accesskey=w
+screen.welcome.button.login=\u30ed\u30b0\u30a4\u30f3
+screen.welcome.button.clear=\u30af\u30ea\u30a2
+
+#Confirmation Screen Messages
+screen.confirmation.message=<a href="{0}">\u3053\u3053</a>\u3092\u30af\u30ea\u30c3\u30af\u3057\u3066\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306b\u79fb\u52d5\u3057\u307e\u3059\uff0e
+
+#Generic Success Screen Messages
+screen.success.header=\u30ed\u30b0\u30a4\u30f3\u3057\u307e\u3057\u305f
+screen.success.success=Central Authentication Service \u306b\u30ed\u30b0\u30a4\u30f3\u3067\u304d\u307e\u3057\u305f\uff0e
+screen.success.security=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u4e0a\u306e\u7406\u7531\u304b\u3089\uff0c\u8a8d\u8a3c\u304c\u5fc5\u8981\u306a\u30b5\u30fc\u30d3\u30b9\u306e\u30a2\u30af\u30bb\u30b9\u7d42\u4e86\u6642\u306b\u306f\uff0c\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u3092\u30ed\u30b0\u30a2\u30a6\u30c8\u3057\uff0c\u7d42\u4e86\u3057\u3066\u304f\u3060\u3055\u3044\uff0e
+
+#Logout Screen Messages
+screen.logout.header=\u30ed\u30b0\u30a2\u30a6\u30c8\u3057\u307e\u3057\u305f
+screen.logout.success=Central Authentication Service \u3092\u30ed\u30b0\u30a2\u30a6\u30c8\u3067\u304d\u307e\u3057\u305f\uff0e
+screen.logout.security=\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u4e0a\u306e\u7406\u7531\u304b\u3089\uff0c\u30a6\u30a7\u30d6\u30d6\u30e9\u30a6\u30b6\u3092\u7d42\u4e86\u3057\u3066\u304f\u3060\u3055\u3044\uff0e
+screen.logout.redirect=\u3042\u306a\u305f\u304c\u30a2\u30af\u30bb\u30b9\u3057\u305f\u30b5\u30fc\u30d3\u30b9\u306b\u3088\u308a\u63d0\u4f9b\u3055\u308c\u305f\u30ea\u30f3\u30af\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u3068\u304d\u306f<a href="{0}">\u3053\u3053</a>\u3092\u30af\u30ea\u30c3\u30af\u3057\u307e\u3059\uff0e
+
+#Service Error Messages
+screen.service.error.header=\u6a29\u9650\u306e\u306a\u3044\u30b5\u30fc\u30d3\u30b9
+screen.service.error.message=\u8a8d\u8a3c\u3057\u3088\u3046\u3068\u3057\u305f\u30b5\u30fc\u30d3\u30b9\u306b\u306f CAS \u3092\u4f7f\u3046\u6a29\u9650\u304c\u3042\u308a\u307e\u305b\u3093\uff0e
+
+screen.service.sso.error.header=\u3053\u306e\u30b5\u30fc\u30d3\u30b9\u306b\u30a2\u30af\u30bb\u30b9\u3059\u308b\u305f\u3081\u306b\u306f\u518d\u8a8d\u8a3c\u304c\u5fc5\u8981
+screen.service.sso.error.message=\u518d\u8a8d\u8a3c\u3092\u8981\u6c42\u3059\u308b\u30b5\u30fc\u30d3\u30b9\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3088\u3046\u3068\u3057\u307e\u3057\u305f\uff0e<a href="{0}">\u518d\u8a8d\u8a3c</a>\u3092\u8a66\u307f\u3066\u304f\u3060\u3055\u3044\uff0e
+
+error.invalid.loginticket=\u3059\u3067\u306b\u9001\u4fe1\u6e08\u307f\u306e\u30d5\u30a9\u30fc\u30e0\u306f\u518d\u9001\u4fe1\u3067\u304d\u307e\u305b\u3093\uff0e
+required.username=\u30e6\u30fc\u30b6\u540d\u306f\u5fc5\u9808\u30d5\u30a3\u30fc\u30eb\u30c9\u3067\u3059\uff0e
+required.password=\u30d1\u30b9\u30ef\u30fc\u30c9\u306f\u5fc5\u9808\u30d5\u30a3\u30fc\u30eb\u30c9\u3067\u3059\uff0e
+error.authentication.credentials.bad=\u3042\u306a\u305f\u304c\u5165\u529b\u3057\u305f\u8a8d\u8a3c\u60c5\u5831\u306f\uff0c\u8a8d\u8a3c\u53ef\u80fd\u306a\u3082\u306e\u3067\u3042\u308b\u3053\u3068\u304c\u78ba\u8a8d\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f\uff0e
+error.authentication.credentials.unsupported=\u5165\u529b\u3057\u305f\u8a8d\u8a3c\u60c5\u5831\u306f CAS \u3067\u306f\u30b5\u30dd\u30fc\u30c8\u3055\u308c\u3066\u3044\u307e\u305b\u3093\uff0e
+
+INVALID_REQUEST_PROXY=\u300cpgt\u300d\u304a\u3088\u3073\u300ctargetService\u300d\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u4e21\u65b9\u304c\u5fc5\u8981\u3067\u3059
+INVALID_TICKET_SPEC=\u30c1\u30b1\u30c3\u30c8\u306e\u6b63\u5f53\u6027\u57fa\u6e96\u30c1\u30a7\u30c3\u30af\u306b\u5931\u6557\u3057\u307e\u3057\u305f\uff0e\u300c\u30b5\u30fc\u30d3\u30b9\u30c1\u30b1\u30c3\u30c8\u300d\u30d0\u30ea\u30c7\u30fc\u30bf\u306b\u3088\u308b\u300c\u30d7\u30ed\u30af\u30b7\u30c1\u30b1\u30c3\u30c8\u300d\u306e\u6b63\u5f53\u6027\u30c1\u30a7\u30c3\u30af\u3092\u884c\u3063\u305f\u304b\uff0c\u66f4\u65b0\u8981\u6c42\u306e\u898f\u683c\u306b\u3042\u3063\u3066\u3044\u306a\u3044\u30b1\u30fc\u30b9\u304c\u8003\u3048\u3089\u308c\u307e\u3059\uff0e
+INVALID_REQUEST=\u300cservice\u300d\u304a\u3088\u3073\u300cticket\u300d\u30d1\u30e9\u30e1\u30fc\u30bf\u306e\u4e21\u65b9\u304c\u5fc5\u8981\u3067\u3059
+INVALID_TICKET=ticket\u300c{0}\u300d\u306f\u8a8d\u8b58\u3067\u304d\u307e\u305b\u3093\u3067\u3057\u305f
+INVALID_SERVICE=ticket\u300c{0}\u300d\u306f\u63d0\u4f9b\u3055\u308c\u3066\u3044\u308b\u30b5\u30fc\u30d3\u30b9\u306b\u4e00\u81f4\u3057\u307e\u305b\u3093
+
+screen.service.error.header=\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306f CAS \u3092\u4f7f\u3046\u6a29\u9650\u304c\u3042\u308a\u307e\u305b\u3093
+screen.service.error.message=\u8a8d\u8a3c\u3057\u3088\u3046\u3068\u3057\u305f\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306f CAS \u3092\u4f7f\u3046\u6a29\u9650\u304c\u3042\u308a\u307e\u305b\u3093\uff0e

+ 68 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/messages_mk.properties

@@ -0,0 +1,68 @@
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+# @author \u0412\u0430\u043d\u0433\u0435\u043b \u0410\u0458\u0430\u043d\u043e\u0432\u0441\u043a\u0438 <ajan at ii edu mk>
+# \u0418\u043d\u0441\u0442\u0438\u0442\u0443\u0442 \u0437\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u043a\u0430
+# @since 3.1.1
+
+#Welcome Screen Messages
+screen.welcome.welcome=\u0414\u043e\u0431\u0440\u043e\u0434\u043e\u0458\u0434\u043e\u0432\u0442\u0435
+screen.welcome.security=\u041f\u043e\u0440\u0430\u0434\u0438 \u0441\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u043d\u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u0438 \u0432\u0435 \u043c\u043e\u043b\u0438\u043c\u0435 \u0434\u0430 \u043d\u0435 \u0437\u0430\u0431\u043e\u0440\u0430\u0432\u0438\u0442\u0435 \u0434\u0430 \u0441\u0435 \u043e\u0434\u0458\u0430\u0432\u0438\u0442\u0435 \u0438 \u0434\u0430 \u0433\u043e \u0437\u0430\u0442\u0432\u043e\u0440\u0438\u0442\u0435 \u0432\u0430\u0448\u0438\u043e\u0442 \u043f\u0440\u0435\u0431\u0430\u0440\u0443\u0432\u0430\u0447 \u043f\u043e \u0437\u0430\u0432\u0440\u0448\u0443\u0432\u0430\u045a\u0435\u0442\u043e \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u0430 \u0441\u043e \u0430\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438\u0442\u0435.
+screen.welcome.instructions=\u0412\u043d\u0435\u0441\u0435\u0442\u0435 \u043a\u043e\u0440\u0438\u0441\u043d\u0438\u0447\u043a\u043e \u0438\u043c\u0435 \u0438 \u043b\u043e\u0437\u0438\u043d\u043a\u0430.
+screen.welcome.label.netid=<span class="accesskey">\u041a</span>\u043e\u0440\u0438\u0441\u043d\u0438\u0447\u043a\u043e \u0438\u043c\u0435:
+screen.welcome.label.netid.accesskey=\u043a
+screen.welcome.label.password=<span class="accesskey">\u041b</span>\u043e\u0437\u0438\u043d\u043a\u0430:
+screen.welcome.label.password.accesskey=\u043b
+screen.welcome.label.warn=<span class="accesskey">\u041f</span>\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0434\u0438 \u043c\u0435 \u043f\u0440\u0438 \u043d\u0430\u0458\u0430\u0432\u0443\u0432\u0430\u045a\u0435 \u0432\u043e \u0434\u0440\u0443\u0433\u0438 \u0430\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438.
+screen.welcome.label.warn.accesskey=\u043f
+screen.welcome.button.login=\u041d\u0410\u0408\u0410\u0412\u0410
+screen.welcome.button.clear=\u041f\u041e\u041d\u0418\u0428\u0422\u0418
+
+#Confirmation Screen Messages
+screen.confirmation.message=\u041f\u0440\u0438\u0442\u0438\u0441\u043d\u0435\u0442\u0435 <a href="{0}">\u0442\u0443\u043a\u0430</a> \u0437\u0430 \u0432\u043b\u0435\u0437 \u0432\u043e \u0430\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0458\u0430\u0442\u0430.
+
+#Generic Success Screen Messages
+screen.success.header=\u0423\u0441\u043f\u0435\u0448\u043d\u0430 \u043d\u0430\u0458\u0430\u0432\u0430
+screen.success.success=\u0423\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u0435 \u043d\u0430\u0458\u0430\u0432\u0438\u0432\u0442\u0435 \u043d\u0430 \u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0438\u043e\u0442 \u0410\u0432\u0442\u0435\u043d\u0442\u0438\u043a\u0430\u0446\u0438\u0441\u043a\u0438 \u0421\u0435\u0440\u0432\u0438\u0441.
+screen.success.security=\u041f\u043e\u0440\u0430\u0434\u0438 \u0441\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u043d\u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u0438 \u0432\u0435 \u043c\u043e\u043b\u0438\u043c\u0435 \u0434\u0430 \u0441\u0435 \u043e\u0434\u0458\u0430\u0432\u0438\u0442\u0435 \u0438 \u0434\u0430 \u0433\u043e \u0437\u0430\u0442\u0432\u043e\u0440\u0438\u0442\u0435 \u0432\u0430\u0448\u0438\u043e\u0442 browser \u043f\u043e \u0437\u0430\u0432\u0440\u0448\u0443\u0432\u0430\u045a\u0435\u0442\u043e \u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u0430 \u0441\u043e \u0430\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0438\u0442\u0435.
+
+#Logout Screen Messages
+screen.logout.header=\u0423\u0441\u043f\u0435\u0448\u043d\u0430 \u043e\u0434\u0458\u0430\u0432\u0430
+screen.logout.success=\u0423\u0441\u043f\u0435\u0448\u043d\u043e \u0441\u0435 \u043e\u0434\u0458\u0430\u0432\u0438\u0432\u0442\u0435 \u043e\u0434 \u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0438\u043e\u0442 \u0410\u0432\u0442\u0435\u0442\u0438\u043a\u0430\u0446\u0438\u0441\u043a\u0438 \u0421\u0435\u0440\u0432\u0438\u0441.
+screen.logout.security=\u041f\u043e\u0440\u0430\u0434\u0438 \u0441\u0438\u0433\u0443\u0440\u043d\u043e\u0441\u043d\u0438 \u043f\u0440\u0438\u0447\u0438\u043d\u0438 \u0432\u0435 \u043c\u043e\u043b\u0438\u043c\u0435 \u0434\u0430 \u0433\u043e \u0437\u0430\u0442\u0432\u043e\u0440\u0438\u0442\u0435 \u0432\u0430\u0448\u0438\u043e\u0442 browser.
+screen.logout.redirect=\u0421\u0435\u0440\u0432\u0438\u0441\u043e\u0442 \u043a\u043e\u0458 \u0432\u0435 \u0434\u043e\u043d\u0435\u0441\u0435 \u043d\u0430 \u0426\u0410\u0421 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0438\u0442\u0435, \u043d\u0443\u0434\u0438 \u043b\u0438\u043d\u043a \u043d\u0430 \u043a\u043e\u0458 \u043c\u043e\u0436\u0435\u0442\u0435 \u0434\u0430 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u0435 \u043d\u0430\u0442\u0430\u043c\u0443 \u0441\u043e \u043f\u0440\u0438\u0442\u0438\u0441\u043a\u0430\u045a\u0435 <a href="{0}">\u0422\u0423\u041a\u0410</a>.
+
+screen.service.sso.error.header=\u0417\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u043f \u043d\u0430 \u043e\u0432\u043e\u0458 \u0441\u0435\u0440\u0432\u0438\u0441 \u0435 \u043f\u043e\u0442\u0440\u0435\u0431\u043d\u0430 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u043a\u0430\u0446\u0438\u0458\u0430
+screen.service.sso.error.message=\u0421\u0435 \u043e\u0431\u0438\u0434\u043e\u0432\u0442\u0435 \u0434\u0430 \u043f\u0440\u0438\u0441\u0442\u0430\u043f\u0438\u0442\u0435 \u043d\u0430 \u0441\u0435\u0440\u0432\u0438\u0441 \u043a\u043e\u0458 \u043f\u043e\u0431\u0430\u0440\u0443\u0432\u0430 \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u043a\u0430\u0446\u0438\u0458\u0430, \u043f\u0440\u0438\u0442\u043e\u0430 \u043d\u0435 \u0441\u0442\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u0446\u0438\u0440\u0430\u043d\u0438. \u0412\u0435 \u043c\u043e\u043b\u0438\u043c\u0435 \u0434\u0430 \u0441\u0435 \u043e\u0431\u0438\u0434\u0435\u0442\u0435 \u0434\u0430 \u0441\u0435 \u0430\u0432\u0442\u0435\u0442\u0438\u043d\u0446\u0438\u0440\u0430\u0442\u0435 \u043f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0441\u043e \u043f\u0440\u0438\u0442\u0438\u0441\u043a\u0430\u045a\u0435 <a href="{0}&renew=true">\u0422\u0423\u041a\u0410</a>.
+
+error.invalid.loginticket=\u0421\u043e\u0434\u0440\u0436\u0438\u043d\u0430\u0442\u0430 \u043d\u0430 \u0444\u043e\u0440\u043c\u0443\u043b\u0430\u0440\u043e\u0442 \u0435 \u0432\u0435\u045c\u0435 \u0438\u0441\u043f\u0440\u0430\u0442\u0435\u043d\u0430. \u041f\u043e\u0432\u0442\u043e\u0440\u043d\u043e \u0438\u0441\u043f\u0440\u0430\u045c\u0430\u045a\u0435 \u043d\u0435 \u0435 \u0434\u043e\u0437\u0432\u043e\u043b\u0435\u043d\u043e.
+required.username=\u041a\u043e\u0440\u0438\u0441\u043d\u0438\u0447\u043a\u043e\u0442\u043e \u0438\u043c\u0435 \u0437\u0430\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u043d\u043e \u0442\u0440\u0435\u0431\u0430 \u0434\u0430 \u0441\u0435 \u043f\u043e\u043f\u043e\u043b\u043d\u0438.
+required.password=\u041b\u043e\u0437\u0438\u043d\u043a\u0430\u0442\u0430 \u0437\u0430\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u043d\u043e \u0442\u0440\u0435\u0431\u0430 \u0434\u0430 \u0441\u0435 \u043f\u043e\u043f\u043e\u043b\u043d\u0438
+error.authentication.credentials.bad=\u041a\u043e\u0440\u0438\u0441\u043d\u0438\u0447\u043a\u043e\u0442\u043e \u0438\u043c\u0435 \u0438/\u0438\u043b\u0438 \u043b\u043e\u0437\u0438\u043d\u043a\u0430\u0442\u0430 \u043d\u0435 \u0441\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u043d\u0438.
+error.authentication.credentials.unsupported=\u0426\u0410\u0421 \u043d\u0435 \u0433\u043e \u043f\u043e\u0434\u0434\u0440\u0436\u0443\u0432\u0430 \u043e\u0432\u043e\u0458 \u043d\u0430\u0447\u0438\u043d \u043d\u0430 \u0430\u0432\u0442\u0435\u043d\u0442\u0438\u043a\u0430\u0446\u0438\u0458\u0430.
+
+INVALID_REQUEST_PROXY=\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0442\u0435 'pgt' \u0438 'targetService' \u0441\u0435 \u0437\u0430\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u043d\u0438.
+INVALID_TICKET_SPEC=\u0411\u0438\u043b\u0435\u0442\u043e\u0442 \u043d\u0435 \u0458\u0430 \u043f\u043e\u043c\u0438\u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430\u0442\u0430 \u043d\u0430 \u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442. \u041e\u0432\u0430\u0430 \u0433\u0440\u0435\u0448\u043a\u0430 \u043c\u043e\u0436\u0435 \u0434\u0430 \u0443\u043f\u0430\u0442\u0443\u0432\u0430 \u043d\u0430 \u043e\u0431\u0438\u0434 \u043d\u0430 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043d\u0430 \u0438\u0441\u043f\u0440\u0430\u0432\u043d\u043e\u0441\u0442 \u043d\u0430 \u041f\u043e\u0441\u0440\u0435\u0434\u043d\u0438\u043a \u0411\u0438\u043b\u0435\u0442 \u0441\u043e \u043f\u043e\u043c\u043e\u0448 \u043d\u0430 \u0432\u0430\u043b\u0438\u0434\u0430\u0442\u043e\u0440 \u043d\u0430 \u0421\u0435\u0440\u0432\u0438\u0441\u0435\u043d \u0411\u0438\u043b\u0435\u0442 \u0438\u043b\u0438 \u043d\u0430 \u043d\u0435\u0437\u0430\u0434\u043e\u0432\u043e\u043b\u0443\u0432\u0430\u045a\u0435 \u043d\u0430 \u0431\u0430\u0440\u0430\u045a\u0430\u0442\u0430 \u0441\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0430\u0440\u043e\u0442 renew=true.
+
+INVALID_REQUEST=\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0438\u0442\u0435 'service' \u0438 'ticket' \u0441\u0435 \u0437\u0430\u0434\u043e\u043b\u0436\u0438\u0442\u0435\u043b\u043d\u0438.
+INVALID_TICKET=\u0411\u0438\u043b\u0435\u0442\u043e\u0442 ''{0}'' \u043d\u0435 \u0435 \u043f\u0440\u0435\u043f\u043e\u0437\u043d\u0430\u0442.
+INVALID_SERVICE=\u0411\u0438\u043b\u0435\u0442\u043e\u0442 ''{0}'' \u043d\u0435 \u043e\u0434\u0433\u043e\u0432\u0430\u0440\u0430 \u043d\u0430 \u043e\u0432\u043e\u0458 \u0441\u0435\u0440\u0432\u0438\u0441. \u041e\u0440\u0438\u0433\u0438\u043d\u0430\u043b\u043d\u0438\u043e\u0442 \u0441\u0435\u0440\u0432\u0438\u0441 \u0431\u0435\u0448\u0435 ''{1}'', \u0430 \u0438\u0441\u043f\u043e\u0440\u0430\u0447\u0430\u043d\u0438\u043e\u0442 \u0441\u0435\u0440\u0432\u0438\u0441 \u0435 ''{2}''.
+
+screen.service.error.header=\u0410\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0458\u0430\u0442\u0430 \u043d\u0435 \u0435 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0438\u0440\u0430\u043d\u0430 \u0437\u0430 \u043a\u043e\u0440\u0438\u0441\u0442\u0435\u045a\u0435 \u043d\u0430 \u0426\u0410\u0421
+screen.service.error.message=\u0410\u043f\u043b\u0438\u043a\u0430\u0446\u0438\u0458\u0430\u0442\u0430 \u0432\u043e \u043a\u043e\u0458\u0430 \u0441\u0435 \u043e\u0431\u0438\u0434\u0443\u0432\u0430\u0442\u0435 \u0434\u0430 \u0441\u0435 \u043d\u0430\u0458\u0430\u0432\u0438\u0442\u0435 \u043d\u0435 \u0435 \u0430\u0432\u0442\u043e\u0440\u0438\u0437\u0438\u0440\u0430\u043d\u0430 \u0437\u0430 \u043a\u043e\u0440\u0438\u0441\u0442\u0435\u045a\u0435 \u043d\u0430 \u0426\u0410\u0421.

+ 65 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/messages_nl.properties

@@ -0,0 +1,65 @@
+#Author: Jan "Velpi" Van der Velpen
+#Version $Revision$ $Date$
+#Since 3.0.3
+
+#Welcome Screen Messages
+
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+screen.welcome.welcome=Proficiat met de succesvolle installatie van CAS!  Met de standaard "authentication handler" kan je ingeloggen als de gebruikersnaam gelijk is aan het wachtwoord. Je kan het nu proberen.
+screen.welcome.security=Voor de veiligheid moet je uitloggen en je browser sluiten wanneer je geen toegang meer nodig hebt tot afgeschermde applicaties!
+screen.welcome.instructions=Om verder te gaan dien je jezelf te authenticeren.
+screen.welcome.label.netid.accesskey=g
+screen.welcome.label.netid=<span class="accesskey">G</span>ebruikersnaam:
+screen.welcome.label.password=<span class="accesskey">W</span>achtwoord:
+screen.welcome.label.password.accesskey=w
+screen.welcome.label.warn=<span class="accesskey">V</span>raag toestemming vooraleer me ingelogd door te sturen naar andere sites.
+screen.welcome.label.warn.accesskey=v
+screen.welcome.button.login=LOGIN
+screen.welcome.button.clear=CLEAR
+
+#Confirmation Screen Messages
+screen.confirmation.message=<a href="{0}">Doorgaan naar de applicatie.</a>
+
+#Generic Success Screen Messages
+screen.success.header=Succesvol ingelogd.
+screen.success.success=Je bent ingelogd bij de Central Authentication Service.
+screen.success.security=Voor de veiligheid moet je uitloggen en je browser sluiten wanneer je geen toegang meer nodig hebt tot afgeschermde applicaties!
+
+#Logout Screen Messages
+screen.logout.header=Succesvol uitgelogd.
+screen.logout.success=Je bent nu uitgelogd bij de Central Authentication Service.
+screen.logout.security=Voor de veiligheid dien je je browser nu af te sluiten.
+screen.logout.redirect=De applicatie waar je vandaan komt heeft <a href="{0}">deze link opgegeven die je kan volgen door hier te klikken</a>.
+
+error.invalid.loginticket=Je mag geen formulier verzenden dat je al eens hebt verzonden.
+required.username=Gelieve een gebruikersnaam in te vullen.
+required.password=Gelieve een wachtwoord in te vullen.
+error.authentication.credentials.bad=De combinatie van gebruikersnaam en wachtwoord was niet juist.
+error.authentication.credentials.unsupported=De verstuurde identificatiegegevens worden niet ondersteund door CAS.
+
+INVALID_REQUEST_PROXY='pgt' en 'targetService' zijn verplichte parameters.
+INVALID_TICKET_SPEC=Het ticket kwam niet overeen met de specificatie voor validatie. Misschien probeer je een Proxy Ticket te valideren op de Service Ticket validator, of komt "renew true" niet overeen.
+INVALID_REQUEST='service' en 'ticket' zijn verplichte parameters.
+INVALID_TICKET=ticket ''{0}'' is niet gekend.
+INVALID_SERVICE=ticket ''{0}'' komt niet overeen met de opgegeven service.
+
+screen.service.error.header=Geen toegang.
+screen.service.error.message=De applicatie waarvoor je toegang vroeg heeft geen toestemming om deze CAS te gebruiken.

+ 96 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/messages_pl.properties

@@ -0,0 +1,96 @@
+# @author Maja Gorecka-Wolniewicz <mgw at umk.pl>
+# @since 3.1.1
+
+#Welcome Screen Messages
+
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+screen.welcome.welcome=Gratulujemy, us\u0142uga CAS jest gotowa do dzia\u0142ania! Domy\u015blny tryb uwierzytelniania akceptuje dane, w kt\u00f3rych has\u0142o jest takie samo jak nazwa u\u017cytkownika - spr\u00f3buj!
+screen.welcome.security=Dla zachowania bezpiecze\u0144stwa, gdy zako\u0144czysz korzystanie z us\u0142ug wymagaj\u0105cych uwierzytelnienia, wyloguj si\u0119 i zamknij przegl\u0105dark\u0119!
+screen.welcome.instructions=Wprowad\u017a sw\u00f3j identyfikator sieciowy i has\u0142o
+screen.welcome.label.netid=<span class="accesskey">I</span>dentyfikator:
+screen.welcome.label.netid.accesskey=i
+screen.welcome.label.password=<span class="accesskey">H</span>as\u0142o:
+screen.welcome.label.password.accesskey=h
+screen.welcome.label.warn=<span class="accesskey">O</span>strzegaj mnie przed zalogowaniem na innych serwerach.
+screen.welcome.label.warn.accesskey=o
+screen.welcome.button.login=ZALOGUJ
+screen.welcome.button.clear=WYCZY\u015a\u0106
+
+#Confirmation Screen Messages
+screen.confirmation.message=Naci\u015bnij <a href="{0}">tutaj</a>, by przej\u015bc do aplikacji.
+
+#Generic Success Screen Messages
+screen.success.header=Udane logowanie
+screen.success.success=Zalogowa\u0142e\u015b si\u0119 w CAS - Centralnej Us\u0142udze Uwierzytelniania.
+screen.success.security=Dla zachowania bezpiecze\u0144stwa, gdy zako\u0144czysz korzystanie z us\u0142ug wymagaj\u0105cych uwierzytelnienia, wyloguj si\u0119 i zamknij przegl\u0105dark\u0119!
+
+#Logout Screen Messages
+screen.logout.header=Udane wylogowanie
+screen.logout.success=Wylogowa\u0142e\u015b si\u0119 z CAS - Centralnej Us\u0142ugi Uwierzytelniania.
+screen.logout.security=Dla zachowania bezpiecze\u0144stwa zamknij przegl\u0105dark\u0119.
+screen.logout.redirect=Us\u0142uga przekaza\u0142a <a href="{0}">adres, do kt\u00f3rego przejdziesz naciskaj\u0105c tutaj</a>.
+
+screen.service.sso.error.header=W celu dost\u0119pu do us\u0142ugi wymagane jest ponowne uwierzytelnienie
+screen.service.sso.error.message=Pr\u00f3ba dost\u0119pu do us\u0142ugi, kt\u00f3ra wymaga ponownego uwierzytelnienia. Pon\u00f3w <a href="{0}">uwierzytelnienie</a>.
+
+error.invalid.loginticket=Nie mo\u017cesz ponownie wys\u0142a\u0107 formularza wcze\u015bniej wys\u0142anego.
+required.username=Nazwa u\u017cytkownika jest polem wymaganym.
+required.password=Has\u0142o jest polem wymaganym.
+error.authentication.credentials.bad=Dostarczone dane uwierzytelniania nie mog\u0105 zosta\u0107 uznane za poprawne.
+error.authentication.credentials.unsupported=Dostarczone dane uwierzytelniania nie nie s\u0105 akceptowane przez us\u0142ug\u0119 CAS.
+
+INVALID_REQUEST_PROXY=parametry 'pgt' i 'targetService' s\u0105 wymagane
+INVALID_TICKET_SPEC=Bilet niezgodny ze specyfikacj\u0105. Mo\u017cliwe przyczyny b\u0142\u0119du to pr\u00f3ba sprawdzenia biletu proxy za pomoc\u0105 walidatora biletu us\u0142ugi, lub brak zgodno\u015bci ze zleceniem odnowienia uwierzytelnienia.
+INVALID_REQUEST=parametry 'service' i 'ticket' s\u0105 wymagane
+INVALID_TICKET=nieznana posta\u0107 biletu ''{0}''
+INVALID_SERVICE=Bilet ''{0}'' nie nale\u017cy do tej us\u0142ugi.  Oryginalna us\u0142uga to ''{1}'', aktualna us\u0142uga to ''{2}''.
+
+screen.service.error.header=Brak uprawnie\u0144 do korzystania z CAS
+screen.service.error.message=Aplikacja, w kt\u00f3ej chcia\u0142e\u015b zosta\u0107 uwierzytelniony nie ma uprawnie\u0144 do korzystania z CAS.
+# LPPE Account Error
+screen.accounterror.password.message=Termin wa\u017cno\u015bci has\u0142a up\u0142yn\u0105\u0142, nie jest okre\u015blony, albo ustawiona data jest nieprawid\u0142owa. Prosz\u0119 skontaktowa\u0107 si\u0119 z pomoc\u0105 techniczn\u0105 w celu uzyskania dost\u0119pu.
+
+# LPPE Account Disabled
+screen.accountdisabled.heading=Konto zosta\u0142o zablokowane.
+screen.accountdisabled.message=Prosz\u0119 skontaktowa\u0107 si\u0119 z pomoc\u0105 techniczn\u0105 w celu uzyskania dost\u0119pu.
+
+# LPPE Password Expired
+screen.expiredpass.heading=Termin wa\u017cno\u015bci has\u0142a up\u0142yn\u0105\u0142.
+screen.expiredpass.message=Prosz\u0119 <a href="{0}">zmieni\u0107 has\u0142o</a>.
+
+# LPPE Password Must be changed
+screen.mustchangepass.heading=Musisz zmieni\u0107 has\u0142o.
+screen.mustchangepass.message=Prosz\u0119 <a href="{0}">zmieni\u0107 has\u0142o</a>.
+
+# LPPE Login out of authorized hours
+screen.badhours.heading=Nie mo\u017cesz zalogowa\u0107 si\u0119 w tym czasie.
+screen.badhours.message=Prosz\u0119 spr\u00f3bowa\u0107 p\u00f3\u017aniej.
+
+# LPPE Login out of authorized workstations
+screen.badworkstation.heading=Nie mo\u017cesz zalogowa\u0107 si\u0119 z tego komputera.
+screen.badworkstation.message=Prosz\u0119 skontaktowa\u0107 si\u0119 z pomoc\u0105 techniczn\u0105 w celu uzyskania dost\u0119pu.
+
+# LPPE Password Warning
+screen.warnpass.heading.today=<strong>Dzisiaj</strong> up\u0142ywa termin wa\u017cno\u015bci Twojego has\u0142a!
+screen.warnpass.heading.tomorrow=Jutro up\u0142ywa termin wa\u017cno\u015bci Twojego has\u0142a!
+screen.warnpass.heading.other=Termin wa\u017cno\u015bci Twojego has\u0142a wygasa za {0} dni.
+screen.warnpass.message.line1=Prosz\u0119 natychmiast <a href="{0}">zmieni\u0107 has\u0142o</a>.
+screen.warnpass.message.line2=Za 10 sekund nast\u0105pi przekierowanie to wybranej <a href="{0}">aplikacji</a>.

+ 64 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/messages_pt_BR.properties

@@ -0,0 +1,64 @@
+#Welcome Screen Messages
+
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+screen.welcome.welcome=Parab\u00e9ns por colocar o CAS no ar! O autenticador padr\u00e3o usa Nome de Usu\u00e1rio igual a Senha: v\u00e1 em frente e tente!
+screen.welcome.security=Por raz\u00f5es de seguran\u00e7a, por favor deslogue e feche o seu navegador quando terminar de acessar os servi\u00e7os que precisam de autentica\u00e7\u00e3o!
+screen.welcome.instructions=Entre com seu usu\u00e1rio e Senha
+screen.welcome.label.netid=<span class="accesskey">U</span>su\u00e1rio:
+screen.welcome.label.netid.accesskey=u
+screen.welcome.label.password=<span class="accesskey">S</span>enha:
+screen.welcome.label.password.accesskey=s
+screen.welcome.label.warn=<span class="accesskey">A</span>visar anter de logar em outros sites.
+screen.welcome.label.warn.accesskey=a
+screen.welcome.button.login=ENTRAR
+screen.welcome.button.clear=LIMPAR
+
+#Confirmation Screen Messages
+screen.confirmation.message=Clique <a href="{0}">aqui</a> para ir para a aplica\u00e7\u00e3o.
+
+#Generic Success Screen Messages
+screen.success.header=Sucesso ao se logar
+screen.success.success=Voc\u00ea se logou com sucesso no Servi\u00e7o de Autentica\u00e7\u00e3o Central.
+screen.success.security=Por raz\u00f5es de seguran\u00e7a, por favor efetue um Logout e feche seu navegador quando voc\u00ea terminar de acessar os servi\u00e7os que precisam de autentica\u00e7\u00e3o!
+
+#Logout Screen Messages
+screen.logout.header=Sucesso ao se deslogar
+screen.logout.success=Voc\u00ea se deslogou com sucesso no Servi\u00e7o de Autentica\u00e7\u00e3o Central.
+screen.logout.security=Por raz\u00f5es de seguran\u00e7a, feche o seu navegador.
+screen.logout.redirect=O servi\u00e7o de onde voc\u00ea veio fornecer um <a href="{0}">link que voc\u00ea pode seguir clicando aqui</a>.
+
+screen.service.sso.error.header=Re-Autenti\u00e7\u00e3o Obrigat\u00f3ria para Acessar esse Servi\u00e7o
+screen.service.sso.error.message=Voc\u00ea tentou acessar um servi\u00e7o que necessita de autentica\u00e7\u00e3o sem re-autentica\u00e7\u00e3o. Por favor, tente <a href="{0}">autenticar novamente</a>.
+
+error.invalid.loginticket=Voc\u00ea n\u00e3o pode tentar re-enviar um formul\u00e1rio que j\u00e1 vou enviado anteriormente.
+required.username=Usu\u00e1rio \u00e9 um campo obrigat\u00f3rio.
+required.password=Senha \u00e9 um campo obrigat\u00f3rio.
+error.authentication.credentials.bad=Usu\u00e1rio ou senha inv\u00e1lidos.
+error.authentication.credentials.unsupported=As credenciais fornecidas n\u00e3o n\u00e3o suportadas pelo CAS.
+
+INVALID_REQUEST_PROXY='pgt' e 'targetService' s\u00e3o par\u00e2metros obrigat\u00f3rios
+INVALID_TICKET_SPEC=O Ticket falhou a valida\u00e7\u00e3o da especifica\u00e7\u00e3o. Possiveis erros incluem tentativa de validar um Proxy Ticket por meio de um validador Service Ticket, ou n\u00e3o estar de acordo com o pedido de renova\u00e7\u00e3o.
+INVALID_REQUEST='service' e 'ticket' s\u00e3o par\u00e2metros obrigat\u00f3rios
+INVALID_TICKET=ticket ''{0}'' n\u00e3o reconhecido
+INVALID_SERVICE=ticket ''{0}'' n\u00e3o casa com o servi\u00e7o fornecido. O servi\u00e7o original era ''{1}'' e o servi\u00e7o fornecido era ''{2}''.
+
+screen.service.error.header=Aplica\u00e7\u00e3o n\u00e3o Autorizada a usar o CAS
+screen.service.error.message=A aplica\u00e7\u00e3o que voc\u00ea tentou autenticar n\u00e3o \u00e9 autorizada a usar o CAS.

+ 69 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/messages_pt_PT.properties

@@ -0,0 +1,69 @@
+#Welcome Screen Messages
+
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+screen.welcome.welcome=Parab\u00e9ns! O CAS est\u00e1 agora online! O autenticador padr\u00e3o usa o nome de utilizador igual \u221a\u2020 palavra-passe: v\u00e1 em frente e experimente!
+screen.welcome.security=Por quest\u00f5es de seguran\u00e7a, por favor feche o seu browser quando terminar de aceder aos servi\u00e7os que necessitam de autentica\u00e7\u00e3o!
+screen.welcome.instructions=Insira o seu utilizador e respectiva palavra-passe
+screen.welcome.label.netid=<span class="accesskey">U</span>tilizador:
+screen.welcome.label.netid.accesskey=u
+screen.welcome.label.password=<span class="accesskey">P</span>alavra-passe:
+screen.welcome.label.password.accesskey=p
+screen.welcome.label.warn=<span class="accesskey">A</span>vise-me antes de entrar noutros sites.
+screen.welcome.label.warn.accesskey=A
+screen.welcome.button.login=ENTRAR
+screen.welcome.button.clear=LIMPAR
+
+# Blocked Errors Page
+screen.blocked.header=Accesso Bloqueado
+screen.blocked.message=Inseriu a palavra-chave incorrectamente demasiadas vezes. A sua conta foi bloqueada.
+
+#Confirmation Screen Messages
+screen.confirmation.message=Clique <a href="{0}">aqui</a> para ir para a aplica\u00e7\u00e3o.
+
+#Generic Success Screen Messages
+screen.success.header=Sess\u00e3o iniciada com sucesso.
+screen.success.success=A sua sess\u00e3o no Servi\u00e7o de Autentica\u00e7\u00e3o Central foi iniciada com sucesso.
+screen.success.security=Por raz\u00f5es de seguran\u00e7a, por favor fa\u00e7a  Logout e feche o seu browser quando terminar de aceder aos servi\u00e7os que necessitam de autentica\u00e7\u00e3o!
+
+
+#Logout Screen Messages
+screen.logout.header=Sess\u00e3o terminada com sucesso.
+screen.logout.success=A sua sess\u00e3o no Servi\u00e7o de Autentica\u00e7\u00e3o Central foi terminada com sucesso.
+screen.logout.security=Por raz\u00f5es de seguran\u00e7a, por favor feche o seu browser.
+screen.logout.redirect=O servi\u00e7o de origem providenciou um <a href="{0}">link que pode ser seguido ao clicar aqui</a>.
+
+screen.service.sso.error.header=\u221a\u00e2 necess\u221a\u00b0ria reautentica\u221a\u00df\u221a\u00a3o para aceder a este servi\u221a\u00dfo
+screen.service.sso.error.message=Voc\u221a\u2122 tentou o acesso a um servi\u221a\u00dfo que requer reautentica\u221a\u00df\u221a\u00a3o sem a efectuar. Por favor tente <a href="{0}">autenticar-se novamente</a>.
+
+error.invalid.loginticket=N\u221a\u00a3o pode tentar reenviar um formul\u221a\u00b0rio que foi enviado anteriormente.
+required.username=Utilizador \u221a\u00a9 um campo obrigat\u221a\u2265rio.
+required.password=Palavra-passe \u221a\u00a9 um campo obrigat\u221a\u2265rio.
+error.authentication.credentials.bad=Utilizador ou palavra-passe inv\u221a\u00b0lidos.
+error.authentication.credentials.unsupported=As credenciais fornecidas n\u221a\u00a3o s\u221a\u00a3o suportadas pelo Servi\u221a\u00dfo de Autentica\u221a\u00df\u221a\u00a3o Central.
+
+INVALID_REQUEST_PROXY=Os par\u221a\u00a2metros 'pgt' e 'targetService' s\u221a\u00a3o obrigat\u221a\u2265rios
+INVALID_TICKET_SPEC=O Ticket falhou a valida\u221a\u00df\u221a\u00a3o de especifica\u221a\u00df\u221a\u00a3o. Poder\u221a\u00a3o ser causas a tentativa de validar um Proxy Ticket atr\u221a\u00b0v\u221a\u00a9s de um validador Service Ticket ou n\u221a\u00a3o estar de acordo com o pedido de renova\u221a\u00df\u221a\u00a3o.
+INVALID_REQUEST=Os par\u221a\u00a2metros 'service' e 'ticket' s\u221a\u00a3o obrigat\u221a\u2265rios
+INVALID_TICKET=ticket ''{0}'' n\u221a\u00a3o reconhecido
+INVALID_SERVICE=ticket ''{0}'' n\u221a\u00a3o coincide com o servi\u221a\u00dfo fornecido. O servi\u221a\u00dfo original foi ''{1}'' e o servi\u221a\u00dfo fornecido foi ''{2}''.
+
+screen.service.error.header=Aplica\u221a\u00df\u221a\u00a3o n\u221a\u00a3o autorizada a usar o Servi\u221a\u00dfo de Autentica\u221a\u00df\u221a\u00a3o Central
+screen.service.error.message=A aplica\u221a\u00df\u221a\u00a3o onde se tentou autenticar n\u221a\u00a3o est\u221a\u00b0 autorizada a usar o Servi\u221a\u00dfo de Autentica\u221a\u00df\u221a\u00a3o Central

+ 107 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/messages_ru.properties

@@ -0,0 +1,107 @@
+#Welcome Screen Messages
+
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+screen.welcome.welcome=\u041f\u043e\u0437\u0434\u0440\u0430\u0432\u043b\u044f\u0435\u043c \u0441 \u0443\u0441\u043f\u0435\u0448\u043d\u044b\u043c \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u044b CAS! "Authentication handler", \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e, \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u043b\u0438\u043d\u043d\u043e\u0441\u0442\u0438 \u0432 \u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0435\u0441\u043b\u0438 \u0438\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \u0438 \u043f\u0430\u0440\u043e\u043b\u044c \u0441\u043e\u0432\u043f\u0430\u0434\u0430\u044e\u0442: \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 CAS \u0432 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0438.
+screen.welcome.security=\u0412 \u0446\u0435\u043b\u044f\u0445 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0439\u0434\u0438\u0442\u0435 \u0438\u0437 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0437\u0430\u043a\u0440\u043e\u0439\u0442\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440, \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0432 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u0435\u0440\u0432\u0438\u0441\u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u043f\u043e\u0434\u043b\u0438\u043d\u043d\u043e\u0441\u0442\u0438!
+screen.welcome.instructions=\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043b\u043e\u0433\u0438\u043d \u0438 \u043f\u0430\u0440\u043e\u043b\u044c
+screen.welcome.label.netid=<span class="accesskey">\u041b</span>\u043e\u0433\u0438\u043d:
+screen.welcome.label.netid.accesskey=\u043b
+screen.welcome.label.password=<span class="accesskey">\u041f</span>\u0430\u0440\u043e\u043b\u044c:
+screen.welcome.label.password.accesskey=\u043f
+screen.welcome.label.warn=<span class="accesskey">\u041f</span>\u0440\u0435\u0434\u0443\u043f\u0440\u0435\u0434\u0438\u0442\u044c \u043f\u0435\u0440\u0435\u0434 \u0432\u0445\u043e\u0434\u043e\u043c \u043d\u0430 \u0434\u0440\u0443\u0433\u0438\u0435 \u0441\u0430\u0439\u0442\u044b.
+screen.welcome.label.warn.accesskey=\u0440
+screen.welcome.button.login=\u0412\u041e\u0419\u0422\u0418
+screen.welcome.button.clear=\u041e\u0427\u0418\u0421\u0422\u0418\u0422\u042c
+
+logo.title=\u043f\u0435\u0440\u0435\u0439\u0442\u0438 \u043d\u0430 \u0434\u043e\u043c\u0430\u0448\u043d\u044e\u044e \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 Jasig
+copyright=Copyright &copy; 2005&ndash;2012 Jasig, Inc. \u0412\u0441\u0435 \u043f\u0440\u0430\u0432\u0430 \u0437\u0430\u0449\u0438\u0449\u0435\u043d\u044b.
+
+# Blocked Errors Page
+screen.blocked.header=\u0421\u0435\u0440\u0432\u0438\u0441 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442 \u043f\u0440\u0430\u0432\u0430 \u0434\u043e\u0441\u0442\u0443\u043f\u0430.
+screen.blocked.message=\u0412\u044b \u0432\u0432\u0435\u043b\u0438 \u043d\u0435 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0435 \u043b\u043e\u0433\u0438\u043d \u0438\u043b\u0438 \u043f\u0430\u0440\u043e\u043b\u044c \u0441\u043b\u0438\u0448\u043a\u043e\u043c \u043c\u043d\u043e\u0433\u043e \u0440\u0430\u0437. \u0414\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u0435\u0440\u0432\u0438\u0441\u0443 \u043f\u0435\u0440\u0435\u043a\u0440\u044b\u0442.
+
+#Confirmation Screen Messages
+screen.confirmation.message=\u041d\u0430\u0436\u043c\u0438\u0442\u0435 <a href="{0}">\u0441\u044e\u0434\u0430</a> \u0434\u043b\u044f \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0430 \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435.
+
+#Generic Success Screen Messages
+screen.success.header=\u0412\u0445\u043e\u0434 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0443\u0441\u043f\u0435\u0448\u0435\u043d.
+screen.success.success=\u0412\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0432\u043e\u0448\u043b\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 Central Authentication Service.
+screen.success.security=\u0412 \u0446\u0435\u043b\u044f\u0445 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u0432\u044b\u0439\u0434\u0438\u0442\u0435 \u0438\u0437 \u0441\u0438\u0441\u0442\u0435\u043c\u044b, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0437\u0430\u043a\u0440\u043e\u0439\u0442\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440, \u0437\u0430\u043a\u043e\u043d\u0447\u0438\u0432 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u0435\u0440\u0432\u0438\u0441\u0443 \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0443\u0436\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0438 \u043f\u043e\u0434\u043b\u0438\u043d\u043d\u043e\u0441\u0442\u0438!
+
+#Logout Screen Messages
+screen.logout.header=\u0412\u044b\u0445\u043e\u0434 \u0438\u0437 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0443\u0441\u043f\u0435\u0448\u0435\u043d.
+screen.logout.success=\u0412\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0432\u044b\u0448\u043b\u0438 \u0438\u0437 \u0441\u0438\u0441\u0442\u0435\u043c\u044b Central Authentication Service.
+screen.logout.security=\u0412 \u0446\u0435\u043b\u044f\u0445 \u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0433\u043e \u0443\u0440\u043e\u0432\u043d\u044f \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438, \u0437\u0430\u043a\u0440\u043e\u0439\u0442\u0435 \u0431\u0440\u0430\u0443\u0437\u0435\u0440.
+screen.logout.redirect=\u0421\u0435\u0440\u0432\u0438\u0441, \u043a \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0434\u043e\u0441\u0442\u0443\u043f, \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u0438\u043b <a href="{0}">\u0441\u0441\u044b\u043b\u043a\u0443 \u0434\u043b\u044f \u0432\u0445\u043e\u0434\u0430</a>.
+
+screen.service.sso.error.header=\u041f\u0435\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u043b\u0438\u043d\u043d\u043e\u0441\u0442\u0438 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0434\u043b\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0441\u0435\u0440\u0432\u0438\u0441\u0443.								  
+screen.service.sso.error.message=\u0412\u044b \u043f\u043e\u043f\u044b\u0442\u0430\u043b\u0438\u0441\u044c \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0441\u0435\u0440\u0432\u0438\u0441\u0443 \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0435\u0440\u0435\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u043f\u043e\u0434\u043b\u0438\u043d\u043d\u043e\u0441\u0442\u0438. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 <a href="{0}">\u0441\u0434\u0435\u043b\u0430\u0439\u0442\u0435 \u044d\u0442\u043e \u0441\u043d\u043e\u0432\u0430</a>.
+
+error.invalid.loginticket=\u0412\u0435\u0431-\u0444\u043e\u0440\u043c\u0430 \u0443\u0436\u0435 \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u043b\u0430 \u0434\u0430\u043d\u043d\u044b\u0435 \u043d\u0430 \u0441\u0435\u0440\u0432\u0435\u0440. \u041f\u043e\u0432\u0442\u043e\u0440\u043d\u0430\u044f \u043f\u0435\u0440\u0435\u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 \u043d\u0435\u0432\u043e\u0437\u043c\u043e\u0436\u043d\u0430.
+required.username=\u0418\u043c\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f - \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435 \u0432\u0432\u043e\u0434\u0430.
+required.password=\u041f\u0430\u0440\u043e\u043b\u044c - \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0435 \u043f\u043e\u043b\u0435 \u0432\u0432\u043e\u0434\u0430.
+
+# Authentication failure messages
+authenticationFailure.AccountDisabledException=\u042d\u0442\u0430 \u0443\u0447\u0451\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f.
+authenticationFailure.AccountLockedException=\u042d\u0442\u0430 \u0443\u0447\u0451\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0430.
+authenticationFailure.CredentialExpiredException=\u0412\u0430\u0448 \u043f\u0430\u0440\u043e\u043b\u044c \u043f\u0440\u043e\u0441\u0440\u043e\u0447\u0435\u043d.
+authenticationFailure.InvalidLoginLocationException=\u0412\u0445\u043e\u0434 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0438\u0437 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430 \u0437\u0430\u043f\u0440\u0435\u0449\u0451\u043d.
+authenticationFailure.InvalidLoginTimeException=\u0412\u0445\u043e\u0434 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0432 \u0434\u0430\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0441\u0443\u0442\u043e\u043a \u0437\u0430\u043f\u0440\u0435\u0449\u0451\u043d.
+authenticationFailure.AccountNotFoundException=\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u043f\u043e\u0434\u043b\u0438\u043d\u043d\u043e\u0441\u0442\u0438.
+authenticationFailure.FailedLoginException=\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u043f\u043e\u0434\u043b\u0438\u043d\u043d\u043e\u0441\u0442\u0438.
+authenticationFailure.UNKNOWN=\u041d\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u0434\u0430\u043d\u043d\u044b\u0435 \u043e \u043f\u043e\u0434\u043b\u0438\u043d\u043d\u043e\u0441\u0442\u0438.
+
+INVALID_REQUEST_PROXY=\u041e\u0431\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 'pgt' \u0438 'targetService' \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b.
+INVALID_TICKET_SPEC="Ticket" \u043d\u0435 \u043f\u0440\u043e\u0448\u0435\u043b \u0443\u0441\u043f\u0435\u0448\u043d\u0443\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438. \u0412\u043e\u0437\u043c\u043e\u0436\u043d\u044b\u0435 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438 \u043e\u0448\u0438\u0431\u043e\u043a \u043c\u043e\u0433\u0443\u0442 \u0432\u043a\u043b\u044e\u0447\u0430\u0442\u044c \u043f\u043e\u043f\u044b\u0442\u043a\u0443 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0438 \u0434\u0435\u0438\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u0438 "Proxy Ticket" \u043f\u043e\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u043e\u043c "Service Ticket validator" \u0438\u043b\u0438 \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0438\u0435 \u0438\u0441\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0441 \u0442\u0440\u0435\u0431\u043e\u0432\u0430\u043d\u0438\u0435\u043c "renew request: true".
+INVALID_REQUEST=\u041e\u0431\u0430 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430 'service' \u0438 'ticket' \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b.
+INVALID_TICKET="Ticket" ''{0}'' \u043d\u0435 \u0440\u0430\u0441\u043f\u043e\u0437\u043d\u0430\u043d.
+INVALID_SERVICE="Ticket" ''{0}'' \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u043e\u043c\u0443 \u0441\u0435\u0440\u0432\u0438\u0441\u0443. \u0418\u0437\u043d\u0430\u0447\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u0431\u044b\u043b ''{1}'' , \u0430 \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u0431\u044b\u043b ''{2}''
+INVALID_PROXY_CALLBACK=\u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 proxy callback url ''{0}'' \u043d\u0435 \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u043e\u0439\u0442\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043f\u043e\u0434\u043b\u0438\u043d\u043d\u043e\u0441\u0442\u0438.
+UNAUTHORIZED_SERVICE_PROXY=\u041f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 ''{0}'' \u043d\u0435 \u0443\u043f\u043e\u043b\u043d\u043e\u043c\u043e\u0447\u0435\u043d \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c CAS proxy authentication.
+
+screen.service.error.header=\u041f\u0440\u0435\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043d\u0435 \u0443\u043f\u043e\u043b\u043d\u043e\u043c\u043e\u0447\u0435\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c CAS
+screen.service.error.message=\u041f\u0440\u0435\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043a\u043e\u0442\u043e\u0440\u043e\u0435 \u043f\u044b\u0442\u0430\u043b\u043e\u0441\u044c \u043f\u0440\u043e\u0439\u0442\u0438 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043f\u043e\u0434\u043b\u0438\u043d\u043d\u043e\u0441\u0442\u0438, \u043d\u0435 \u0443\u043f\u043e\u043b\u043d\u043e\u043c\u043e\u0447\u0435\u043d\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c CAS.								   
+screen.service.empty.error.message=\u0420\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432 \u043f\u0443\u0441\u0442. \u041f\u0440\u0435\u043b\u043e\u0436\u0435\u043d\u0438\u044f \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0435 CAS \u0434\u043e\u043b\u0436\u043d\u044b \u0431\u044b\u0442\u044c \u0432\u0432\u0435\u0434\u0435\u043d\u044b \u0432 \u0440\u0435\u0433\u0438\u0441\u0442\u0440 \u0441\u0435\u0440\u0432\u0438\u0441\u043e\u0432.
+
+# Password policy
+password.expiration.warning=\u0421\u0440\u043e\u043a \u0433\u043e\u0434\u043d\u043e\u0441\u0442\u0438 \u043f\u0430\u0440\u043e\u043b\u044f \u0438\u0441\u0442\u0435\u043a\u0430\u0435\u0442 \u0447\u0435\u0440\u0435\u0437 {0} \u0434\u0435\u043d\u044c/\u0434\u043d\u0435\u0439. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 <a href="{1}">\u0438\u0437\u043c\u0435\u043d\u0438\u0442\u0435 \u0441\u0432\u043e\u0439 \u043f\u0430\u0440\u043e\u043b\u044c</a> \u0441\u0435\u0439\u0447\u0430\u0441.
+password.expiration.loginsRemaining=\u0423 \u0432\u0430\u0441 \u043e\u0441\u0442\u0430\u043b\u043e\u0441\u044c {0} \u0432\u0445\u043e\u0434/\u0432\u0445\u043e\u0434\u043e\u0432 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043f\u0435\u0440\u0435\u0434 \u0442\u0435\u043c \u043a\u0430\u043a \u0432\u044b \u0431\u0443\u0434\u0435\u0442\u0435 <strong>\u041e\u0411\u042f\u0417\u0410\u041d\u042b</strong> \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u043f\u0430\u0440\u043e\u043b\u044c.
+screen.accountdisabled.heading=\u042d\u0442\u0430 \u0443\u0447\u0451\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0443\u044e\u0449\u0430\u044f.
+screen.accountdisabled.message=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0441\u0432\u044f\u0436\u0438\u0442\u0435\u0441\u044c \u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u043c \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443.
+screen.accountlocked.heading=\u042d\u0442\u0430 \u0443\u0447\u0451\u0442\u043d\u0430\u044f \u0437\u0430\u043f\u0438\u0441\u044c \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0430.
+screen.accountlocked.message=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0441\u0432\u044f\u0436\u0438\u0442\u0435\u0441\u044c \u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u043c \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443.
+screen.expiredpass.heading=\u0421\u0440\u043e\u043a \u0433\u043e\u0434\u043d\u043e\u0441\u0442\u0438 \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0430\u0440\u043e\u043b\u044f \u043f\u0440\u043e\u0441\u0440\u043e\u0447\u0435\u043d.
+screen.expiredpass.message=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 <a href="{0}">\u043f\u043e\u043c\u0435\u043d\u044f\u0439\u0442\u0435 \u0432\u0430\u0448 \u043f\u0430\u0440\u043e\u043b\u044c</a>.
+screen.mustchangepass.heading=\u0412\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u043e\u043c\u0435\u043d\u044f\u0442\u044c \u0432\u0430\u0448 \u043f\u0430\u0440\u043e\u043b\u044c.
+screen.mustchangepass.message=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 <a href="{0}">\u043f\u043e\u043c\u0435\u043d\u044f\u0439\u0442\u0435 \u0432\u0430\u0448 \u043f\u0430\u0440\u043e\u043b\u044c</a>.
+screen.badhours.heading=\u0412\u0430\u0448\u0435\u0439 \u0443\u0447\u0435\u0442\u043d\u043e\u0439 \u0437\u0430\u043f\u0438\u0441\u0438 \u0437\u0430\u043f\u0440\u0435\u0449\u0451\u043d \u0432\u0445\u043e\u0434 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0432 \u0434\u0430\u043d\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f \u0441\u0443\u0442\u043e\u043a.
+screen.badhours.message=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0432\u043e\u0439\u0442\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u043f\u043e\u0437\u0436\u0435.
+screen.badworkstation.heading=\u0412\u044b \u043d\u0435 \u043c\u043e\u0436\u0435\u0442\u0435 \u0432\u043e\u0439\u0442\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0441 \u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u0430.
+screen.badworkstation.message=\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0441\u0432\u044f\u0436\u0438\u0442\u0435\u0441\u044c \u0441 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u043c \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u043e\u0440\u043e\u043c \u0434\u043b\u044f \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443.
+
+# OAuth
+screen.oauth.confirm.header=\u0410\u0432\u0442\u043e\u0440\u0438\u0437\u0430\u0446\u0438\u044f
+screen.oauth.confirm.message=\u0412\u044b \u043d\u0430\u043c\u0435\u0440\u0435\u043d\u044b \u0434\u0430\u0442\u044c \u043f\u043e\u043b\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f \u043a \u0432\u0430\u0448\u0435\u043c\u0443 \u043f\u0440\u043e\u0444\u0438\u043b\u044e \u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0441\u0435\u0440\u0432\u0438\u0441\u0443: "{0}" ?
+screen.oauth.confirm.allow=\u0420\u0430\u0437\u0440\u0435\u0448\u0438\u0442\u044c \u0434\u043e\u0441\u0442\u0443\u043f
+
+# Unavailable
+screen.unavailable.heading=CAS \u043d\u0435 \u0434\u043e\u0441\u0442\u0443\u043f\u0435\u043d
+screen.unavailable.message=\u041f\u0440\u043e\u0438\u0437\u043e\u0448\u043b\u0430 \u043e\u0448\u0438\u0431\u043a\u0430 \u0432 \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0435 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0432\u0430\u0448\u0435\u0433\u043e \u0437\u0430\u043f\u0440\u043e\u0441\u0430. \u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430 \u0441\u0432\u044f\u0436\u0438\u0442\u0435\u0441\u044c \u0441 \u0432\u0430\u0448\u0435\u0439 \u0441\u043b\u0443\u0436\u0431\u043e\u0439 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0438 \u0438\u043b\u0438 \u043f\u043e\u043f\u0440\u043e\u0431\u0443\u0439\u0442\u0435 \u0435\u0449\u0451 \u0440\u0430\u0437.

+ 63 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/messages_sl.properties

@@ -0,0 +1,63 @@
+#Welcome Screen Messages
+
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+screen.welcome.welcome=Dobrodo\u0161li v ARNES CAS online\!  Uporabite uporabni\u0161ko ime in geslo, ki vam ga je dodeli administrator ARNES organizacije
+screen.welcome.security=Zaradi varnostnih razlogov, prosimo, da naredite odjavo in zaprete brskalnik, ko zapustite spletni vir, ki je zahteval va\u0161o avtentikacijo.
+screen.welcome.instructions=Vpi\u0161ite va\u0161o uporabni\u0161ko ime(eduprincipalName\: ime@arnes.si) in geslo.
+screen.welcome.label.netid=<span class\="accesskey">edu</span>PersonPrincipalName\:
+screen.welcome.label.netid.accesskey=n
+screen.welcome.label.password=<span class\="accesskey">G</span>eslo\:
+screen.welcome.label.password.accesskey=p
+screen.welcome.label.warn=<span class\="accesskey">O</span>pozori me, ko naredim novo prijavo v drugi spletni vir.
+screen.welcome.label.warn.accesskey=w
+screen.welcome.button.login=Prijava
+screen.welcome.button.clear=ZBRI\u0160I
+
+#Confirmation Screen Messages
+screen.confirmation.message=Klikni <a href\="{0}">tukaj</a> za vstop v aplikacijo.
+
+#Generic Success Screen Messages
+screen.success.header=Prijava uspela
+screen.success.success=Uspe\u0161no ste se prijavili v Centralno Avtenikacijsko Storitev.
+screen.success.security=Zaradi varnostnih razlogov, prosimo, da naredite odjavo in zaprete brskalnik, ko zapustite spletni vir, ki je zahteval va\u0161o avtentikacijo.
+
+#Logout Screen Messages
+screen.logout.header=Odjava uspela
+screen.logout.success=Uspe\u0161no ste se prijavili v Centralno Avtenikacijsko Storitev.
+screen.logout.security=Zaradi varnostnih razlogov zaprite brskalnik
+screen.logout.redirect=Spletna storitev iz katere ste se odjavili, je priskrbela <a href\="{0}"> povezavo za nazaj, \u010De se \u017Eelite vrniti, kliknite na povezavo.</a>.
+
+#Service Error Messages
+screen.service.error.header=Ne avtorizerana Storitev
+screen.service.error.message=Vstopiti ste hoteli do o spletne storitve nima dovoljenja do uporabe CAS storitve.
+
+
+error.invalid.loginticket=Ne morete narediti re-submit forme, ki je \u017Ee bila poslana.
+required.username=Uporabni\u0161ko ime je nujno vpisati\!
+required.password=Geslo je nujno vpisati\!
+error.authentication.credentials.bad=Veredostojnost, ki ste jo vpisali ne moremo dolo\u010Diti, da je pristno\!
+error.authentication.credentials.unsupported=Veredostojnost, ki ste jo vpisali ni podprto v CAS-u\!
+
+INVALID_REQUEST_PROXY='pgt' in 'targetService' parametra sta oba nujna\!
+INVALID_TICKET_SPEC=Ne uspe\u0161na validacija zahtevka. Mo\u017Ene napake so nastale pri vklju\u010Ditvi validacije v Proxy Ticket preko Service Ticket validacije.
+INVALID_REQUEST='service' in 'ticket' parametra sta oba nujna\!
+INVALID_TICKET=zahtevek ''{0}'' ni prepoznana
+INVALID_SERVICE=zahtevek ''{0}''  se ne ujema priskrbljeno storitvijo

+ 68 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/messages_sv.properties

@@ -0,0 +1,68 @@
+#Author: Fredrik Nilsson http://www.infoflexconnect.se
+#Updated 2006-08-29: Pål Axelsson & Veronika Berglund IT Support Department at Uppsala University http://www.uu.se
+#Updated 2007-06-21: Pål Axelsson IT Support Department at Uppsala University http://www.uu.se
+
+#Welcome Screen Messages
+
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+screen.welcome.welcome=Välkommen till den centrala autentiseringstjänsten CAS. När du installerat men ännu inte konfigurerat CAS kan du autentisera genom att ange samma text som både användaridentitet och lösenord för att prova CAS.
+screen.welcome.security=Av säkerhetsskäl bör du logga ut och stänga webbläsaren när du är färdig med webbtjänsterna som kräver inloggning.
+screen.welcome.instructions=Ange din användaridentitet och ditt lösenord.
+screen.welcome.label.netid=<span class="accesskey">A</span>nvändarid:
+screen.welcome.label.netid.accesskey=a
+screen.welcome.label.password=<span class="accesskey">L</span>ösenord:
+screen.welcome.label.password.accesskey=l
+screen.welcome.label.warn=<span class="accesskey">V</span>arna mig innan jag loggar på en annan webbtjänst.
+screen.welcome.label.warn.accesskey=v
+screen.welcome.button.login=LOGGA IN
+screen.welcome.button.clear=RENSA
+
+#Confirmation Screen Messages
+screen.confirmation.message=Klicka <a href="{0}">här</a> för att komma till webbtjänsten.
+
+#Generic Success Screen Messages
+screen.success.header=Inloggningen lyckades
+screen.success.success=Du har loggat in i den centrala autentiseringstjänsten CAS.
+screen.success.security=Av säkerhetsskäl bör du logga ut och stänga webbläsaren när du är färdig med webbtjänsterna som kräver inloggning.
+
+#Logout Screen Messages
+screen.logout.header=Du har loggat ut!
+screen.logout.success=Du har loggat ut från den centrala autentiseringstjänsten CAS.
+screen.logout.security=Av säkerhetsskäl bör du stänga din webbläsare.
+screen.logout.redirect=Du kan logga in igen genom att klicka <a href="{0}">här</a>.
+
+screen.service.sso.error.header=Du måste logga in igen för att använda denna webbtjänst
+screen.service.sso.error.message=Du försökte använda en webbtjänst som kräver att du loggar in igen för att använda den. <a href="{0}">Logga in igen</a>!
+
+error.invalid.loginticket=Du kan inte återanvända ett webbformulär som redan har skickats in.
+required.username=Användaridentitet är en obligatoriskt uppgift.
+required.password=Lösenord är en obligatoriskt uppgift.
+error.authentication.credentials.bad=Inloggningsuppgifterna du angav kunde inte valideras!
+error.authentication.credentials.unsupported=Inloggningsuppgifterna du angav kan inte hanteras av CAS.
+
+INVALID_REQUEST_PROXY=Både 'pgt' och 'targetService' är obligatoriska parametrar.
+INVALID_TICKET_SPEC=Ticket-valideringen misslyckades. Möjliga fel skulle kunna vara att försöka validera en Proxy Ticket via en validator för Service Ticket, eller att en ny inloggning inte genomfördes trots begäran.
+INVALID_REQUEST=Både 'service' och 'ticket' är obligatoriska parametrar.
+INVALID_TICKET=ticket ''{0}'' känns inte igen.
+INVALID_SERVICE=ticket ''{0}'' överenstämmer inte med angiven webbtjänst.
+
+screen.service.error.header=Ej auktoriserad webbtjänst
+screen.service.error.message=Webbtjänsten du försökter ansluta till är ej auktoriserad att använda den centrala autentiseringstjänsten CAS.

+ 67 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/messages_tr.properties

@@ -0,0 +1,67 @@
+# Author : Mert Caliskan <mcaliskan@gmail.com>
+# http://www.jroller.com/mert
+
+#Welcome Screen Messages
+
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+screen.welcome.welcome=Tebrikler!, CAS'\u0131 \u00e7al\u0131\u015f\u0131r hale getirdiniz. Haz\u0131rdaki kimliklendirme mekanizmas\u0131 kullan\u0131c\u0131 ad\u0131 ve parola ayn\u0131 oldu\u011fu durumlarda giri\u015fe izin vermektedir. Hemen deneyebilirsiniz.
+screen.welcome.security=G\u00fcvenli\u011finiz i\u00e7in, i\u015finiz bittikten sonra kulland\u0131\u011f\u0131n\u0131z uygulamalardan \u00e7\u0131k\u0131\u015f yap\u0131n\u0131z ve taray\u0131c\u0131n\u0131z\u0131 kapat\u0131n\u0131z.
+screen.welcome.instructions=Kullan\u0131c\u0131 ad\u0131 ve parolan\u0131z\u0131 giriniz
+screen.welcome.label.netid=<span class="accesskey">K</span>ullan\u0131c\u0131 Ad\u0131:
+screen.welcome.label.netid.accesskey=k
+screen.welcome.label.password=<span class="accesskey">P</span>arola:
+screen.welcome.label.password.accesskey=p
+screen.welcome.label.warn=Di\u011fer sitelere girmeden \u00f6nce beni <span class="accesskey">u</span>yar.
+screen.welcome.label.warn.accesskey=u
+screen.welcome.button.login=G\u0130R\u0130\u015e
+screen.welcome.button.clear=TEM\u0130ZLE
+
+#Confirmation Screen Messages
+screen.confirmation.message=Uygulamaya eri\u015fmek i\u00e7in <a href="{0}">buraya</a> t\u0131klay\u0131n\u0131z.
+
+#Generic Success Screen Messages
+screen.success.header=Oturum ba\u015far\u0131yla a\u00e7\u0131ld\u0131.
+screen.success.success=Merkezi Kimliklendirme Servisi'ne ba\u015far\u0131l\u0131 bir \u015fekilde giri\u015f yapt\u0131n\u0131z.
+screen.success.security=G\u00fcvenlik nedenlerinden dolay\u0131, uygulamalar\u0131n kullan\u0131m\u0131 bittikten sonra sistemden \u00e7\u0131k\u0131\u015f yap\u0131p, taray\u0131c\u0131n\u0131z\u0131 kapat\u0131n\u0131z.
+
+#Logout Screen Messages
+screen.logout.header=Oturum ba\u015far\u0131yla kapat\u0131ld\u0131.
+screen.logout.success=Merkezi Kimliklendirme Servisi'nden ba\u015far\u0131l\u0131 bir \u015fekilde \u00e7\u0131k\u0131\u015f yapt\u0131n\u0131z.
+screen.logout.security=G\u00fcvenlik nedenlerinden dolay\u0131, taray\u0131c\u0131n\u0131z\u0131 kapan\u0131t\u0131z.
+screen.logout.redirect=Kimliklendirme servisi'ne y\u00f6nlendirme i\u00e7in verilen <a href="{0}">ba\u011flant\u0131ya t\u0131klayarak devam edebilirsiniz</a>.
+
+screen.service.sso.error.header=Bu servise eri\u015fim i\u00e7in tekrar kimliklendirme gerekmektedir.
+screen.service.sso.error.message=Bir servise ard\u0131\u015f\u0131k kimlik onay\u0131 yaparak eri\u015fmeye \u00e7al\u0131\u015ft\u0131n\u0131z. Onay i\u00e7in l\u00fctfen tekrar <a href="{0}">t\u0131klay\u0131n\u0131z</a>.
+
+error.invalid.loginticket=\u00d6nceden g\u00f6nderilmi\u015f bir giri\u015f formunu tekrar g\u00f6nderemezsiniz.
+required.username=Kullan\u0131c\u0131 Ad\u0131 girilmesi gerekli bir aland\u0131r.
+required.password=Parola girilmesi gerekli bir aland\u0131r.
+error.authentication.credentials.bad=Kullan\u0131c\u0131 Kodu veya Parola bilginizde yanl\u0131\u015fl\u0131k var. L\u00fctfen kontrol edip tekrar deneyiniz.
+error.authentication.credentials.unsupported=Sa\u011flad\u0131\u011f\u0131n\u0131z kimliklendirme bilgileri Merkezi Kimliklendirme Sistemi taraf\u0131ndan tan\u0131nmamaktad\u0131r.
+
+INVALID_REQUEST_PROXY='pgt' ve 'targetService' parametrelerinin her ikisi birden gereklidir.
+INVALID_TICKET_SPEC=Bilet do\u011frulama ba\u015far\u0131s\u0131z oldu. Olas\u0131 hatalar, servis bilet do\u011frulay\u0131c\u0131 ile Vekil (Proxy) bilet do\u011frulamak veya do\u011fru yenileme iste\u011fi kural\u0131na uyulmamas\u0131 olabilir.
+INVALID_REQUEST='service' ve 'ticket' parametrelerinin her ikisi birden gereklidir.
+INVALID_TICKET=Tan\u0131ms\u0131z bilet: ''{0}''
+INVALID_SERVICE=Bilet ''{0}'' belirtilen servis ile e\u015fle\u015fmiyor.  As\u0131l servis: ''{1}'', belirtilen servis: ''{2}''.
+
+screen.service.error.header=Uygulama, Merkezi Kimliklendirme Servisi'ni kullanmak i\u00e7in yetkilendirilmemi\u015f.
+screen.service.error.message=Kimliklendirme onay\u0131 yap\u0131lmaya \u00e7al\u0131\u015f\u0131lan uygulama, Merkezi Kimliklendirme Servisi'ni kullanmak i\u00e7in yetkilendirilmemi\u015f.

+ 66 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/messages_ur.properties

@@ -0,0 +1,66 @@
+#Author: Faizan Ahmed (Rutgers University)
+#Since 3.0.5
+
+#Welcome Screen Messages
+
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+screen.welcome.welcome=CAS ko online lany par Mubark baad! Default Tasdeek karney wala aap ki tasdeek iss soorat main karay ga agar password wo hi hoo jo user name hay. Aiye, aur try ki jiyay.
+screen.welcome.security=Security ki wajoohat ki bina par aap mehrbani farma kar apnay web browser say Log Out aur Exit zaroor ki jiyay jub aap aisi services isstamal kar chookay hoon jo tasdeek chahti hoon.
+screen.welcome.instructions=Apni Jasig ki NetID aur Password enter ki jiyay.
+screen.welcome.label.netid=<span class="accesskey">N</span>etID:
+screen.welcome.label.netid.accesskey=n
+screen.welcome.label.password=<span class="accesskey">P</span>assword:
+screen.welcome.label.password.accesskey=p
+screen.welcome.label.warn=Mujay doosri sites main login karnay say pahlay <span class="accesskey">K</span>habardar karain.
+screen.welcome.label.warn.accesskey=k
+screen.welcome.button.login=LOGIN
+screen.welcome.button.clear=CLEAR
+
+#Confirmation Screen Messages
+screen.confirmation.message=<a href="{0}">Yahan Click</a> karain agar app application main dakhil hona chahtay hain.
+
+#Generic Success Screen Messages
+screen.success.header=Log In Kamyab
+screen.success.success=Aap kamyabi say Centeral Authentication Service main login hoo chokay hain.
+screen.success.security=Security ki wajoohat ki bina par jub aap aisi services isstamal kar chookay hoon jo tasdeek chahti hoon tou baraye mehrbani apnay web browser say Log Out aur Exit zaroor ki jiyay
+
+#Logout Screen Messages
+screen.logout.header=Logout Kamyab
+screen.logout.success=Aap kamyabi say Centeral Authentication Service say logout hoo chokay hain.
+screen.logout.security=Security ki wajoohat ki bina par apnay web browser say exit karain.
+screen.logout.redirect=Aap jis service say aye hain oos nay aik <a href="{0}">link supply kia hay jissay aap agar chahain tou follow kar saktay hain</a>.
+
+
+#Service Error Messages
+screen.service.error.header=Bay Sanud Service
+screen.service.error.message=Aap jiss service kay liay tasdeek ki kooshush kar rahay thay woo service CAS istamal karnay ki mijaz nahi.
+
+error.invalid.loginticket=Aap oos form ko dobara arsaal karnay ki kooshsish nahi kar saktay joo aap pahly arsal kar chookay hoon.
+required.username=Username ka khana por karna lazmi hay.
+required.password=Password ka khana por karna lazmi hay.
+error.authentication.credentials.bad=Aap ka mohya kia howa waseeka (parteet puter) ki tasdeek karna momkin nahi.
+error.authentication.credentials.unsupported=Aap kay mohya kiay howay waseeka (parteet puter) ko CAS support nahi karta.
+
+INVALID_REQUEST_PROXY='pgt' aur 'targetService' parameters doonon lazmi hain.
+INVALID_TICKET_SPEC=Ticket toseek ki tasreeh par poora nahi utri. Momkin gultiyoon main shamil, hoo sakta hay kay proxy ticket ki toseek ki kooshish Service ticket kay toseek kaninda say ki gai hoo, yaa 'renew true request' say iss ki mitabkat na hooti hoo.
+INVALID_REQUEST='service' aur 'ticket' parameters doonon lazmi hain.
+INVALID_TICKET=ticket ''{0}'' ki shnakhat nahi hoo saki.
+INVALID_SERVICE=ticket ''{0}'' ki mitabkat mohya karda service say nahi hoo saki.

+ 68 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/messages_zh_CN.properties

@@ -0,0 +1,68 @@
+#Welcome Screen Messages
+
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+screen.welcome.welcome=\u6b22\u8fce\u6765\u5230\u4e2d\u592e\u8ba4\u8bc1\u7cfb\u7edf\u3002\u9ed8\u8ba4\u7684\u8ba4\u8bc1\u5904\u7406\u5668\u652f\u6301\u90a3\u4e9b\u7528\u6237\u540d\u7b49\u4e8e\u5bc6\u7801\u7684\u8d26\u53f7\uff0c\u5f00\u53d1\u8005\u53ef\u4ee5\u8bd5\u8bd5\u770b\u3002
+screen.welcome.security=\u51fa\u4e8e\u5b89\u5168\u8003\u8651\uff0c\u4e00\u65e6\u60a8\u8bbf\u95ee\u8fc7\u90a3\u4e9b\u9700\u8981\u60a8\u63d0\u4f9b\u51ed\u8bc1\u4fe1\u606f\u7684\u5e94\u7528\u65f6\uff0c\u8bf7\u64cd\u4f5c\u5b8c\u6210\u4e4b\u540e\u5173\u95ed\u6d4f\u89c8\u5668\u3002
+screen.welcome.instructions=\u8bf7\u8f93\u5165\u60a8\u7684\u7528\u6237\u540d\u548c\u5bc6\u7801.
+screen.welcome.label.netid=\u7528\u6237\u540d:
+screen.welcome.label.netid.accesskey=n
+screen.welcome.label.password=\u5bc6\u3000\u7801:
+screen.welcome.label.password.accesskey=p
+screen.welcome.label.warn=\u8f6c\u5411\u5176\u4ed6\u7ad9\u70b9\u524d\u63d0\u793a\u6211\u3002
+screen.welcome.label.warn.accesskey=w
+screen.welcome.button.login=\u767b\u5f55
+screen.welcome.button.clear=\u91cd\u7f6e
+
+# Blocked Errors Page
+screen.blocked.header=\u8bbf\u95ee\u88ab\u62d2\u7edd
+screen.blocked.message=\u8f93\u9519\u5bc6\u7801\u6b21\u6570\u592a\u591a\uff0c\u8d26\u53f7\u88ab\u9501\u5b9a\u3002
+
+#Confirmation Screen Messages
+screen.confirmation.message=\u5355\u51fb <a href="{0}">\u8fd9\u91cc</a> \uff0c\u4fbf\u80fd\u591f\u8bbf\u95ee\u5230\u76ee\u6807\u5e94\u7528\u3002
+
+#Generic Success Screen Messages
+screen.success.header=\u767b\u5f55\u6210\u529f
+screen.success.success=\u60a8\u5df2\u7ecf\u6210\u529f\u767b\u5f55\u4e2d\u592e\u8ba4\u8bc1\u7cfb\u7edf\u3002
+screen.success.security=\u51fa\u4e8e\u5b89\u5168\u8003\u8651\uff0c\u4e00\u65e6\u60a8\u8bbf\u95ee\u8fc7\u90a3\u4e9b\u9700\u8981\u60a8\u63d0\u4f9b\u51ed\u8bc1\u4fe1\u606f\u7684\u5e94\u7528\u65f6\uff0c\u8bf7\u64cd\u4f5c\u5b8c\u6210\u4e4b\u540e\u5173\u95ed\u6d4f\u89c8\u5668\u3002
+
+#Logout Screen Messages
+screen.logout.header=\u6ce8\u9500\u6210\u529f
+screen.logout.success=\u60a8\u5df2\u7ecf\u6210\u529f\u9000\u51faCAS\u7cfb\u7edf\uff0c\u8c22\u8c22\u4f7f\u7528\uff01
+screen.logout.security=\u51fa\u4e8e\u5b89\u5168\u8003\u8651\uff0c\u8bf7\u5173\u95ed\u60a8\u7684\u6d4f\u89c8\u5668\u3002
+screen.logout.redirect=\u60a8\u53ef\u4ee5\u901a\u8fc7\u5982\u4e0bURL\u8bbf\u95ee\u5230\u76ee\u6807\u670d\u52a1\uff1a<a href="{0}">\u76ee\u6807\u670d\u52a1</a>.
+
+screen.service.sso.error.header=\u5728\u8bbf\u95ee\u5230\u5230\u76ee\u6807\u670d\u52a1\u524d\uff0c\u4f60\u5fc5\u987b\u7ecf\u8fc7\u91cd\u65b0\u8ba4\u8bc1\u7684\u8003\u9a8c
+screen.service.sso.error.message=\u4f60\u6b63\u8bd5\u56fe\u8bbf\u95ee\u8981\u6c42\u91cd\u65b0\u8ba4\u8bc1\u7684\u670d\u52a1\u3002\u8bf7\u5c1d\u8bd5\u8fdb\u884c<a href="{0}">\u518d\u6b21\u8ba4\u8bc1</a>\u3002
+
+error.invalid.loginticket=\u60a8\u4e0d\u80fd\u591f\u518d\u6b21\u63d0\u4ea4\u5df2\u7ecf\u63d0\u4ea4\u8fc7\u7684\u8868\u5355\u3002
+required.username=\u5fc5\u987b\u5f55\u5165\u7528\u6237\u540d\u3002
+required.password=\u5fc5\u987b\u5f55\u5165\u5bc6\u7801\u3002
+error.authentication.credentials.bad=\u60a8\u63d0\u4f9b\u7684\u51ed\u8bc1\u6709\u8bef\u3002
+error.authentication.credentials.unsupported=CAS\u4e0d\u652f\u6301\u60a8\u63d0\u4f9b\u7684\u51ed\u8bc1\u3002
+
+INVALID_REQUEST_PROXY=\u5fc5\u987b\u540c\u65f6\u63d0\u4f9b'pgt'\u548c'targetService'\u53c2\u6570
+INVALID_TICKET_SPEC=\u6821\u9a8c\u7968\u6839\u5931\u8d25\u3002\u60a8\u53ef\u80fd\u91c7\u7528\u670d\u52a1\u7968\u6839\u6765\u6821\u9a8c\u4ee3\u7406\u7968\u6839\uff0c\u6216\u6ca1\u6709\u5c06renew\u8bbe\u4e3atrue\u3002
+INVALID_REQUEST=\u5fc5\u987b\u540c\u65f6\u63d0\u4f9b'service'\u548c'ticket'\u53c2\u6570
+INVALID_TICKET=\u672a\u80fd\u591f\u8bc6\u522b\u51fa\u76ee\u6807 ''{0}''\u7968\u6839
+INVALID_SERVICE=\u7968\u6839''{0}''\u4e0d\u7b26\u5408\u76ee\u6807\u670d\u52a1
+
+screen.service.error.header=\u672a\u8ba4\u8bc1\u6388\u6743\u7684\u670d\u52a1
+screen.service.error.message=\u4e0d\u5141\u8bb8\u4f7f\u7528CAS\u6765\u8ba4\u8bc1\u60a8\u8bbf\u95ee\u7684\u76ee\u6807\u5e94\u7528\u3002

+ 68 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/messages_zh_TW.properties

@@ -0,0 +1,68 @@
+#Welcome Screen Messages
+
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+screen.welcome.welcome=\u6b61\u8fce\u4f86\u5230\u4e2d\u592e\u8a8d\u8b49\u7cfb\u7d71\u3002\u9ed8\u8a8d\u7684\u8a8d\u8b49\u8655\u7406\u5668\u652f\u6301\u90a3\u4e9b\u7528\u6236\u540d\u7b49\u65bc\u5bc6\u78bc\u7684\u8cec\u865f\uff0c\u958b\u767c\u8005\u53ef\u4ee5\u8a66\u8a66\u770b\u3002
+screen.welcome.security=\u51fa\u65bc\u5b89\u5168\u8003\u616e\uff0c\u4e00\u65e6\u60a8\u8a2a\u554f\u904e\u90a3\u4e9b\u9700\u8981\u60a8\u63d0\u4f9b\u6191\u8b49\u4fe1\u606f\u7684\u61c9\u7528\u6642\uff0c\u8acb\u64cd\u4f5c\u5b8c\u6210\u4e4b\u5f8c\u95dc\u9589\u700f\u89bd\u5668\u3002
+screen.welcome.instructions=\u8acb\u8f38\u5165\u60a8\u7684\u7528\u6236\u540d\u548c\u5bc6\u78bc.
+screen.welcome.label.netid=\u7528\u6236\u540d:
+screen.welcome.label.netid.accesskey=n
+screen.welcome.label.password=\u5bc6\u3000\u78bc:
+screen.welcome.label.password.accesskey=p
+screen.welcome.label.warn=\u8f49\u5411\u5176\u4ed6\u7ad9\u9ede\u524d\u63d0\u793a\u6211\u3002
+screen.welcome.label.warn.accesskey=w
+screen.welcome.button.login=\u767b\u9304
+screen.welcome.button.clear=\u91cd\u7f6e
+
+# Blocked Errors Page
+screen.blocked.header=\u8a2a\u554f\u88ab\u62d2\u7d55
+screen.blocked.message=\u8f38\u932f\u5bc6\u78bc\u6b21\u6578\u592a\u591a\uff0c\u8cec\u865f\u88ab\u9396\u5b9a\u3002
+
+#Confirmation Screen Messages
+screen.confirmation.message=\u55ae\u64ca<a href="{0}">\u9019\u88e1</a> \uff0c\u4fbf\u80fd\u5920\u8a2a\u554f\u5230\u76ee\u6a19\u61c9\u7528\u3002
+
+#Generic Success Screen Messages
+screen.success.header=\u767b\u9304\u6210\u529f
+screen.success.success=\u60a8\u5df2\u7d93\u6210\u529f\u767b\u9304\u4e2d\u592e\u8a8d\u8b49\u7cfb\u7d71\u3002
+screen.success.security=\u51fa\u65bc\u5b89\u5168\u8003\u616e\uff0c\u4e00\u65e6\u60a8\u8a2a\u554f\u904e\u90a3\u4e9b\u9700\u8981\u60a8\u63d0\u4f9b\u6191\u8b49\u4fe1\u606f\u7684\u61c9\u7528\u6642\uff0c\u8acb\u64cd\u4f5c\u5b8c\u6210\u4e4b\u5f8c\u95dc\u9589\u700f\u89bd\u5668\u3002
+
+#Logout Screen Messages
+screen.logout.header=\u8a3b\u92b7\u6210\u529f
+screen.logout.success=\u60a8\u5df2\u7d93\u6210\u529f\u9000\u51faCAS\u7cfb\u7d71\uff0c\u8b1d\u8b1d\u4f7f\u7528\uff01
+screen.logout.security=\u51fa\u65bc\u5b89\u5168\u8003\u616e\uff0c\u8acb\u95dc\u9589\u60a8\u7684\u700f\u89bd\u5668\u3002
+screen.logout.redirect=\u60a8\u53ef\u4ee5\u901a\u904e\u5982\u4e0bURL\u8a2a\u554f\u5230\u76ee\u6a19\u670d\u52d9\uff1a<a href="{0}">\u76ee\u6a19\u670d\u52d9</a>.
+
+screen.service.sso.error.header=\u5728\u8a2a\u554f\u5230\u5230\u76ee\u6a19\u670d\u52d9\u524d\uff0c\u4f60\u5fc5\u9808\u7d93\u904e\u91cd\u65b0\u8a8d\u8b49\u7684\u8003\u9a57
+screen.service.sso.error.message=\u4f60\u6b63\u8a66\u5716\u8a2a\u554f\u8981\u6c42\u91cd\u65b0\u8a8d\u8b49\u7684\u670d\u52d9\u3002\u8acb\u5617\u8a66\u9032\u884c<a href="{0}">\u518d\u6b21\u8a8d\u8b49</a>\u3002
+
+error.invalid.loginticket=\u60a8\u4e0d\u80fd\u5920\u518d\u6b21\u63d0\u4ea4\u5df2\u7d93\u63d0\u4ea4\u904e\u7684\u8868\u55ae\u3002
+required.username=\u5fc5\u9808\u9304\u5165\u7528\u6236\u540d\u3002
+required.password=\u5fc5\u9808\u9304\u5165\u5bc6\u78bc\u3002
+error.authentication.credentials.bad=\u60a8\u63d0\u4f9b\u7684\u6191\u8b49\u6709\u8aa4\u3002
+error.authentication.credentials.unsupported=CAS\u4e0d\u652f\u6301\u60a8\u63d0\u4f9b\u7684\u6191\u8b49\u3002
+
+INVALID_REQUEST_PROXY=\u5fc5\u9808\u540c\u6642\u63d0\u4f9b'pgt'\u548c'targetService'\u53c3\u6578
+INVALID_TICKET_SPEC=\u6821\u9a57\u7968\u6839\u5931\u6557\u3002\u60a8\u53ef\u80fd\u63a1\u7528\u670d\u52d9\u7968\u6839\u4f86\u6821\u9a57\u4ee3\u7406\u7968\u6839\uff0c\u6216\u6c92\u6709\u5c07renew\u8a2d\u70batrue\u3002
+INVALID_REQUEST=\u5fc5\u9808\u540c\u6642\u63d0\u4f9b'service'\u548c'ticket'\u53c3\u6578
+INVALID_TICKET=\u672a\u80fd\u5920\u8b58\u5225\u51fa\u76ee\u6a19''{0}''\u7968\u6839
+INVALID_SERVICE=\u7968\u6839''{0}''\u4e0d\u7b26\u5408\u76ee\u6a19\u670d\u52d9
+
+screen.service.error.header=\u672a\u8a8d\u8b49\u6388\u6b0a\u7684\u670d\u52d9
+screen.service.error.message=\u4e0d\u5141\u8a31\u4f7f\u7528CAS\u4f86\u8a8d\u8b49\u60a8\u8a2a\u554f\u7684\u76ee\u6a19\u61c9\u7528\u3002

+ 72 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/protocol_views.properties

@@ -0,0 +1,72 @@
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+### 1.0 validation responses (/validate)
+cas1ServiceFailureView.(class)=org.jasig.cas.web.view.Cas10ResponseView
+cas1ServiceFailureView.successResponse=false
+
+cas1ServiceSuccessView.(class)=org.jasig.cas.web.view.Cas10ResponseView
+cas1ServiceSuccessView.successResponse=true
+
+### CAS 2.0 Response Protocol Views
+
+## Validation Response Protocol Views: /proxyValidate, /serviceValidate
+cas2ServiceSuccessView.(class)=org.springframework.web.servlet.view.JstlView
+cas2ServiceSuccessView.url=/WEB-INF/view/jsp/protocol/2.0/casServiceValidationSuccess.jsp
+
+cas2ServiceFailureView.(class)=org.springframework.web.servlet.view.JstlView
+cas2ServiceFailureView.url=/WEB-INF/view/jsp/protocol/2.0/casServiceValidationFailure.jsp
+
+## Proxy Response Protocol Views: /proxy
+cas2ProxyFailureView.(class)=org.springframework.web.servlet.view.JstlView
+cas2ProxyFailureView.url=/WEB-INF/view/jsp/protocol/2.0/casProxyFailureView.jsp
+
+cas2ProxySuccessView.(class)=org.springframework.web.servlet.view.JstlView
+cas2ProxySuccessView.url=/WEB-INF/view/jsp/protocol/2.0/casProxySuccessView.jsp
+
+### CAS 3.0 Response Protocol Views: /proxyValidate, /serviceValidate
+cas3ServiceSuccessView.(class)=org.springframework.web.servlet.view.JstlView
+cas3ServiceSuccessView.url=/WEB-INF/view/jsp/protocol/3.0/casServiceValidationSuccess.jsp
+
+cas3ServiceFailureView.(class)=org.springframework.web.servlet.view.JstlView
+cas3ServiceFailureView.url=/WEB-INF/view/jsp/protocol/3.0/casServiceValidationFailure.jsp
+
+#OpenId Views
+casOpenIdServiceFailureView.(class)=org.springframework.web.servlet.view.JstlView
+casOpenIdServiceFailureView.url=/WEB-INF/view/jsp/protocol/openid/casOpenIdServiceFailureView.jsp
+
+casOpenIdServiceSuccessView.(class)=org.springframework.web.servlet.view.JstlView
+casOpenIdServiceSuccessView.url=/WEB-INF/view/jsp/protocol/openid/casOpenIdServiceSuccessView.jsp
+
+casOpenIdAssociationFailureView.(class)=org.springframework.web.servlet.view.JstlView
+casOpenIdAssociationFailureView.url=/WEB-INF/view/jsp/protocol/openid/casOpenIdAssociationFailureView.jsp
+
+casOpenIdAssociationSuccessView.(class)=org.springframework.web.servlet.view.JstlView
+casOpenIdAssociationSuccessView.url=/WEB-INF/view/jsp/protocol/openid/casOpenIdAssociationSuccessView.jsp
+
+openIdProviderView.(class)=org.springframework.web.servlet.view.JstlView
+openIdProviderView.url=/WEB-INF/view/jsp/protocol/openid/user.jsp
+
+### Post View
+postResponseView.(class)=org.springframework.web.servlet.view.JstlView
+postResponseView.url=/WEB-INF/view/jsp/protocol/casPostResponseView.jsp
+
+### OAuth View
+oauthConfirmView.(class)=org.springframework.web.servlet.view.JstlView
+oauthConfirmView.url=/WEB-INF/view/jsp/protocol/oauth/confirm.jsp

+ 24 - 0
sso/trunk/src/main/webapp/WEB-INF/classes/saml_views.properties

@@ -0,0 +1,24 @@
+#
+# Licensed to Jasig under one or more contributor license
+# agreements. See the NOTICE file distributed with this work
+# for additional information regarding copyright ownership.
+# Jasig licenses this file to you under the Apache License,
+# Version 2.0 (the "License"); you may not use this file
+# except in compliance with the License.  You may obtain a
+# copy of the License at the following location:
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+### SAML Views
+casSamlServiceSuccessView.(class)=org.jasig.cas.support.saml.web.view.Saml10SuccessResponseView
+casSamlServiceSuccessView.issuer=localhost
+
+casSamlServiceFailureView.(class)=org.jasig.cas.support.saml.web.view.Saml10FailureResponseView

+ 193 - 0
sso/trunk/src/main/webapp/WEB-INF/deployerConfigContext.xml

@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<!--
+| deployerConfigContext.xml centralizes into one file some of the declarative configuration that
+| all CAS deployers will need to modify.
+|
+| This file declares some of the Spring-managed JavaBeans that make up a CAS deployment.  
+| The beans declared in this file are instantiated at context initialization time by the Spring 
+| ContextLoaderListener declared in web.xml.  It finds this file because this
+| file is among those declared in the context parameter "contextConfigLocation".
+|
+| By far the most common change you will need to make in this file is to change the last bean
+| declaration to replace the default authentication handler with
+| one implementing your approach for authenticating usernames and passwords.
++-->
+
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:p="http://www.springframework.org/schema/p"
+       xmlns:c="http://www.springframework.org/schema/c"
+       xmlns:tx="http://www.springframework.org/schema/tx"
+       xmlns:util="http://www.springframework.org/schema/util"
+       xmlns:sec="http://www.springframework.org/schema/security"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
+       http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
+       http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.2.xsd
+       http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
+
+    <!--
+       | The authentication manager defines security policy for authentication by specifying at a minimum
+       | the authentication handlers that will be used to authenticate credential. While the AuthenticationManager
+       | interface supports plugging in another implementation, the default PolicyBasedAuthenticationManager should
+       | be sufficient in most cases.
+       +-->
+    <bean id="authenticationManager" class="org.jasig.cas.authentication.PolicyBasedAuthenticationManager">
+        <constructor-arg>
+            <map>
+                <!--
+                   | IMPORTANT
+                   | Every handler requires a unique name.
+                   | If more than one instance of the same handler class is configured, you must explicitly
+                   | set its name to something other than its default name (typically the simple class name).
+                   -->
+                <entry key-ref="proxyAuthenticationHandler" value-ref="proxyPrincipalResolver" />
+                <entry key-ref="primaryAuthenticationHandler" value-ref="primaryPrincipalResolver" />
+            </map>
+        </constructor-arg>
+
+        <!-- Uncomment the metadata populator to allow clearpass to capture and cache the password
+             This switch effectively will turn on clearpass.
+        <property name="authenticationMetaDataPopulators">
+           <util:list>
+              <bean class="org.jasig.cas.extension.clearpass.CacheCredentialsMetaDataPopulator"
+                    c:credentialCache-ref="encryptedMap" />
+           </util:list>
+        </property>
+        -->
+
+        <!--
+           | Defines the security policy around authentication. Some alternative policies that ship with CAS:
+           |
+           | * NotPreventedAuthenticationPolicy - all credential must either pass or fail authentication
+           | * AllAuthenticationPolicy - all presented credential must be authenticated successfully
+           | * RequiredHandlerAuthenticationPolicy - specifies a handler that must authenticate its credential to pass
+           -->
+        <property name="authenticationPolicy">
+            <bean class="org.jasig.cas.authentication.AnyAuthenticationPolicy" />
+        </property>
+    </bean>
+
+    <!-- Required for proxy ticket mechanism. -->
+    <bean id="proxyAuthenticationHandler"
+          class="org.jasig.cas.authentication.handler.support.HttpBasedServiceCredentialsAuthenticationHandler"
+          p:httpClient-ref="httpClient" />
+
+    <!--
+       | TODO: Replace this component with one suitable for your enviroment.
+       |
+       | This component provides authentication for the kind of credential used in your environment. In most cases
+       | credential is a username/password pair that lives in a system of record like an LDAP directory.
+       | The most common authentication handler beans:
+       |
+       | * org.jasig.cas.authentication.LdapAuthenticationHandler
+       | * org.jasig.cas.adaptors.jdbc.QueryDatabaseAuthenticationHandler
+       | * org.jasig.cas.adaptors.x509.authentication.handler.support.X509CredentialsAuthenticationHandler
+       | * org.jasig.cas.support.spnego.authentication.handler.support.JCIFSSpnegoAuthenticationHandler
+       -->
+    <bean id="primaryAuthenticationHandler"
+          class="org.jasig.cas.authentication.AcceptUsersAuthenticationHandler">
+        <property name="users">
+            <map>
+                <entry key="casuser" value="Mellon"/>
+            </map>
+        </property>
+    </bean>
+
+    <!-- Required for proxy ticket mechanism -->
+    <bean id="proxyPrincipalResolver"
+          class="org.jasig.cas.authentication.principal.BasicPrincipalResolver" />
+
+    <!--
+       | Resolves a principal from a credential using an attribute repository that is configured to resolve
+       | against a deployer-specific store (e.g. LDAP).
+       -->
+    <bean id="primaryPrincipalResolver"
+          class="org.jasig.cas.authentication.principal.PersonDirectoryPrincipalResolver" >
+        <property name="attributeRepository" ref="attributeRepository" />
+    </bean>
+
+    <!--
+    Bean that defines the attributes that a service may return.  This example uses the Stub/Mock version.  A real implementation
+    may go against a database or LDAP server.  The id should remain "attributeRepository" though.
+    +-->
+    <bean id="attributeRepository" class="org.jasig.services.persondir.support.StubPersonAttributeDao"
+            p:backingMap-ref="attrRepoBackingMap" />
+    
+    <util:map id="attrRepoBackingMap">
+        <entry key="uid" value="uid" />
+        <entry key="eduPersonAffiliation" value="eduPersonAffiliation" /> 
+        <entry key="groupMembership" value="groupMembership" />
+    </util:map>
+
+    <!-- 
+    Sample, in-memory data store for the ServiceRegistry. A real implementation
+    would probably want to replace this with the JPA-backed ServiceRegistry DAO
+    The name of this bean should remain "serviceRegistryDao".
+    +-->
+    <bean id="serviceRegistryDao" class="org.jasig.cas.services.InMemoryServiceRegistryDaoImpl"
+            p:registeredServices-ref="registeredServicesList" />
+
+    <util:list id="registeredServicesList">
+        <bean class="org.jasig.cas.services.RegexRegisteredService"
+              p:id="0" p:name="HTTP and IMAP" p:description="Allows HTTP(S) and IMAP(S) protocols"
+              p:serviceId="^(https?|imaps?)://.*" p:evaluationOrder="10000001" />
+        <!--
+        Use the following definition instead of the above to further restrict access
+        to services within your domain (including sub domains).
+        Note that example.com must be replaced with the domain you wish to permit.
+        This example also demonstrates the configuration of an attribute filter
+        that only allows for attributes whose length is 3.
+        -->
+        <!--
+        <bean class="org.jasig.cas.services.RegexRegisteredService">
+            <property name="id" value="1" />
+            <property name="name" value="HTTP and IMAP on example.com" />
+            <property name="description" value="Allows HTTP(S) and IMAP(S) protocols on example.com" />
+            <property name="serviceId" value="^(https?|imaps?)://([A-Za-z0-9_-]+\.)*example\.com/.*" />
+            <property name="evaluationOrder" value="0" />
+            <property name="attributeFilter">
+              <bean class="org.jasig.cas.services.support.RegisteredServiceRegexAttributeFilter" c:regex="^\w{3}$" /> 
+            </property>
+        </bean>
+        -->
+    </util:list>
+    
+    <bean id="auditTrailManager" class="com.github.inspektr.audit.support.Slf4jLoggingAuditTrailManager" />
+    
+    <bean id="healthCheckMonitor" class="org.jasig.cas.monitor.HealthCheckMonitor" p:monitors-ref="monitorsList" />
+  
+    <util:list id="monitorsList">
+      <bean class="org.jasig.cas.monitor.MemoryMonitor" p:freeMemoryWarnThreshold="10" />
+      <!--
+        NOTE
+        The following ticket registries support SessionMonitor:
+          * DefaultTicketRegistry
+          * JpaTicketRegistry
+        Remove this monitor if you use an unsupported registry.
+      -->
+      <bean class="org.jasig.cas.monitor.SessionMonitor"
+          p:ticketRegistry-ref="ticketRegistry"
+          p:serviceTicketCountWarnThreshold="5000"
+          p:sessionCountWarnThreshold="100000" />
+    </util:list>
+</beans>

+ 211 - 0
sso/trunk/src/main/webapp/WEB-INF/login-webflow.xml

@@ -0,0 +1,211 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<flow xmlns="http://www.springframework.org/schema/webflow"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xsi:schemaLocation="http://www.springframework.org/schema/webflow
+                          http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd">
+
+    <var name="credential" class="org.jasig.cas.authentication.UsernamePasswordCredential" />
+    <on-start>
+        <evaluate expression="initialFlowSetupAction" />
+    </on-start>
+
+	<action-state id="ticketGrantingTicketCheck">
+        <evaluate expression="ticketGrantingTicketCheckAction.checkValidity(flowRequestContext)"/>
+        <transition on="notExists" to="gatewayRequestCheck"/>
+        <transition on="invalid" to="terminateSession"/>
+        <transition on="valid" to="hasServiceCheck"/>
+	</action-state>
+
+    <action-state id="terminateSession">
+        <evaluate expression="terminateSessionAction.terminate(flowRequestContext)"/>
+        <transition to="generateLoginTicket"/>
+    </action-state>
+    
+	<decision-state id="gatewayRequestCheck">
+		<if test="requestParameters.gateway != '' and requestParameters.gateway != null and flowScope.service != null" then="gatewayServicesManagementCheck" else="serviceAuthorizationCheck" />
+	</decision-state>
+	
+	<decision-state id="hasServiceCheck">
+		<if test="flowScope.service != null" then="renewRequestCheck" else="viewGenericLoginSuccess" />
+	</decision-state>
+	
+	<decision-state id="renewRequestCheck">
+		<if test="requestParameters.renew != '' and requestParameters.renew != null" then="serviceAuthorizationCheck" else="generateServiceTicket" />
+	</decision-state>
+
+    <!-- Do a service authorization check early without the need to login first -->
+    <action-state id="serviceAuthorizationCheck">
+        <evaluate expression="serviceAuthorizationCheck"/>
+        <transition to="generateLoginTicket"/>
+    </action-state>
+	
+	<!-- 
+		The "warn" action makes the determination of whether to redirect directly to the requested
+		service or display the "confirmation" page to go back to the server.
+	-->
+	<decision-state id="warn">
+		<if test="flowScope.warnCookieValue" then="showWarningView" else="redirect" />
+	</decision-state>
+	
+	<!-- 
+	<action-state id="startAuthenticate">
+		<action bean="x509Check" />
+		<transition on="success" to="sendTicketGrantingTicket" />
+		<transition on="warn" to="warn" />
+		<transition on="error" to="generateLoginTicket" />
+	</action-state>
+	 -->
+
+	<action-state id="generateLoginTicket">
+        <evaluate expression="generateLoginTicketAction.generate(flowRequestContext)" />
+		<transition on="generated" to="viewLoginForm" />
+	</action-state>
+    
+	<view-state id="viewLoginForm" view="casLoginView" model="credential">
+        <binder>
+            <binding property="username" />
+            <binding property="password" />
+        </binder>
+        <on-entry>
+            <set name="viewScope.commandName" value="'credential'" />
+        </on-entry>
+		<transition on="submit" bind="true" validate="true" to="realSubmit">
+            <evaluate expression="authenticationViaFormAction.doBind(flowRequestContext, flowScope.credential)" />
+        </transition>
+	</view-state>
+
+  <action-state id="realSubmit">
+    <evaluate expression="authenticationViaFormAction.submit(flowRequestContext, flowScope.credential, messageContext)" />
+    <transition on="warn" to="warn" />
+    <transition on="success" to="sendTicketGrantingTicket" />
+    <transition on="successWithWarnings" to="showMessages" />
+    <transition on="authenticationFailure" to="handleAuthenticationFailure" />
+    <transition on="error" to="generateLoginTicket" />
+  </action-state>
+
+  <view-state id="showMessages" view="casLoginMessageView">
+    <on-entry>
+      <evaluate expression="sendTicketGrantingTicketAction" />
+      <set name="requestScope.messages" value="messageContext.allMessages" />
+    </on-entry>
+    <transition on="proceed" to="serviceCheck" />
+  </view-state>
+
+  <action-state id="handleAuthenticationFailure">
+    <evaluate expression="authenticationExceptionHandler.handle(currentEvent.attributes.error, messageContext)" />
+    <transition on="AccountDisabledException" to="casAccountDisabledView"/>
+    <transition on="AccountLockedException" to="casAccountLockedView"/>
+    <transition on="CredentialExpiredException" to="casExpiredPassView"/>
+    <transition on="InvalidLoginLocationException" to="casBadWorkstationView"/>
+    <transition on="InvalidLoginTimeException" to="casBadHoursView"/>
+    <transition on="FailedLoginException" to="generateLoginTicket"/>
+    <transition on="AccountNotFoundException" to="generateLoginTicket"/>
+    <transition on="UNKNOWN" to="generateLoginTicket"/>
+  </action-state>
+
+	<action-state id="sendTicketGrantingTicket">
+    <evaluate expression="sendTicketGrantingTicketAction" />
+		<transition to="serviceCheck" />
+	</action-state>
+
+	<decision-state id="serviceCheck">
+		<if test="flowScope.service != null" then="generateServiceTicket" else="viewGenericLoginSuccess" />
+	</decision-state>
+	
+	<action-state id="generateServiceTicket">
+        <evaluate expression="generateServiceTicketAction" />
+		<transition on="success" to ="warn" />
+    <transition on="authenticationFailure" to="handleAuthenticationFailure" />
+    <transition on="error" to="generateLoginTicket" />
+		<transition on="gateway" to="gatewayServicesManagementCheck" />
+	</action-state>
+
+    <action-state id="gatewayServicesManagementCheck">
+        <evaluate expression="gatewayServicesManagementCheck" />
+        <transition on="success" to="redirect" />
+    </action-state>
+
+    <action-state id="redirect">
+        <evaluate expression="flowScope.service.getResponse(requestScope.serviceTicketId)" result-type="org.jasig.cas.authentication.principal.Response" result="requestScope.response" />
+        <transition to="postRedirectDecision" />
+    </action-state>
+
+    <decision-state id="postRedirectDecision">
+        <if test="requestScope.response.responseType.name() == 'POST'" then="postView" else="redirectView" />
+    </decision-state>
+
+	<!-- 
+		the "viewGenericLogin" is the end state for when a user attempts to login without coming directly from a service.
+		They have only initialized their single-sign on session.
+	-->
+	<end-state id="viewGenericLoginSuccess" view="casLoginGenericSuccessView" />
+
+
+	<!-- 
+		The "showWarningView" end state is the end state for when the user has requested privacy settings (to be "warned") to be turned on.  It delegates to a 
+		view defines in default_views.properties that display the "Please click here to go to the service." message.
+	-->
+	<end-state id="showWarningView" view="casLoginConfirmView" />
+
+
+  <!-- Password policy failure states -->
+  <end-state id="abstactPasswordChangeView">
+    <on-entry>
+      <set name="flowScope.passwordPolicyUrl" value="passwordPolicy.passwordPolicyUrl" />
+    </on-entry>
+  </end-state>
+  <end-state id="casExpiredPassView" view="casExpiredPassView" parent="#abstactPasswordChangeView" />
+  <end-state id="casMustChangePassView" view="casMustChangePassView" parent="#abstactPasswordChangeView" />
+  <end-state id="casAccountDisabledView" view="casAccountDisabledView" />
+  <end-state id="casAccountLockedView" view="casAccountLockedView" />
+  <end-state id="casBadHoursView" view="casBadHoursView" />
+  <end-state id="casBadWorkstationView" view="casBadWorkstationView" />
+
+    <end-state id="postView" view="postResponseView">
+        <on-entry>
+            <set name="requestScope.parameters" value="requestScope.response.attributes" />
+            <set name="requestScope.originalUrl" value="flowScope.service.id" />
+        </on-entry>
+    </end-state>
+
+	<!-- 
+		The "redirect" end state allows CAS to properly end the workflow while still redirecting
+		the user back to the service required.
+	-->
+	<end-state id="redirectView" view="externalRedirect:#{requestScope.response.url}" />
+	
+	<end-state id="viewServiceErrorView" view="viewServiceErrorView" />
+    
+    <end-state id="viewServiceSsoErrorView" view="viewServiceSsoErrorView" />
+
+  <global-transitions>
+    <!--
+      CAS-1023 This one is simple - redirects to a login page (same as renew) when 'ssoEnabled' flag is unchecked
+      instead of showing an intermediate unauthorized view with a link to login page
+    -->
+    <transition to="viewLoginForm" on-exception="org.jasig.cas.services.UnauthorizedSsoServiceException"/>
+
+    <transition to="viewServiceErrorView" on-exception="org.springframework.webflow.execution.repository.NoSuchFlowExecutionException" />
+    <transition to="viewServiceErrorView" on-exception="org.jasig.cas.services.UnauthorizedServiceException" />
+  </global-transitions>
+</flow>

+ 55 - 0
sso/trunk/src/main/webapp/WEB-INF/logout-webflow.xml

@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<flow xmlns="http://www.springframework.org/schema/webflow"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xsi:schemaLocation="http://www.springframework.org/schema/webflow http://www.springframework.org/schema/webflow/spring-webflow-2.0.xsd">
+
+  <action-state id="terminateSession">
+    <evaluate expression="terminateSessionAction.terminate(flowRequestContext)" />
+    <transition to="doLogout" />
+  </action-state>
+
+  <action-state id="doLogout">
+    <evaluate expression="logoutAction" />
+    <transition on="finish" to="finishLogout" />
+    <transition on="front" to="frontLogout" />
+  </action-state>
+
+  <action-state id="frontLogout">
+    <evaluate expression="frontChannelLogoutAction" />
+    <transition on="finish" to="finishLogout" />
+    <transition on="redirectApp" to="redirectToFrontApp" />
+  </action-state>
+
+  <view-state id="redirectToFrontApp" view="externalRedirect:#{currentEvent.attributes.logoutUrl}&amp;RelayState=#{flowExecutionContext.key}">
+    <transition on="next" to="frontLogout" />
+  </view-state>
+
+  <decision-state id="finishLogout">
+    <if test="flowScope.logoutRedirectUrl != null" then="redirectView" else="logoutView" />
+  </decision-state>
+
+  <end-state id="redirectView" view="externalRedirect:#{flowScope.logoutRedirectUrl}" />
+
+  <view-state id="logoutView" view="casLogoutView" />
+
+</flow>

+ 56 - 0
sso/trunk/src/main/webapp/WEB-INF/restlet-servlet.xml

@@ -0,0 +1,56 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<beans
+  xmlns="http://www.springframework.org/schema/beans"
+  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xmlns:context="http://www.springframework.org/schema/context"
+  xmlns:p="http://www.springframework.org/schema/p"
+  xmlns:util="http://www.springframework.org/schema/util"
+  xsi:schemaLocation="http://www.springframework.org/schema/beans   
+					  http://www.springframework.org/schema/beans/spring-beans.xsd
+					  http://www.springframework.org/schema/context 
+					  http://www.springframework.org/schema/context/spring-context.xsd
+                      http://www.springframework.org/schema/util
+                      http://www.springframework.org/schema/util/spring-util.xsd">
+
+	<context:annotation-config/>
+	
+	<bean id="root" class="org.restlet.ext.spring.SpringRouter" p:attachments-ref="attachmentsMap" />
+	
+    <util:map id="attachmentsMap">
+        <entry key="/tickets">
+            <bean class="org.restlet.ext.spring.SpringFinder">
+                <lookup-method name="create" bean="ticketResource" />
+            </bean>
+        </entry>
+        <entry key="/tickets/{ticketGrantingTicketId}">
+            <bean class="org.restlet.ext.spring.SpringFinder">
+                <lookup-method name="create" bean="ticketGrantingTicketResource" />
+            </bean>
+        </entry>
+    </util:map>
+            
+	<bean id="ticketResource" class="org.jasig.cas.integration.restlet.TicketResource" scope="prototype" />
+	
+	<bean id="ticketGrantingTicketResource" class="org.jasig.cas.integration.restlet.TicketGrantingTicketResource" scope="prototype" />
+	
+</beans>

+ 26 - 0
sso/trunk/src/main/webapp/WEB-INF/spring-configuration/README.txt

@@ -0,0 +1,26 @@
+INTRODUCTION
+The spring-configuration directory is a "convention-over-configuration" option
+for CAS deployers.  It allows you to drop a Spring XML configuration file into
+this directory and have CAS automatically find it (after the typical application
+restart).  It eliminates the need for you to register that file in the web.xml
+
+ADVANTAGES
+By automatically breaking the configuration into smaller "bite-sized" pieces
+you can easily override small components of CAS without worrying about merging
+huge pieces of configurations files together later.
+
+The configuration-over-convention option also allows you to add new configuration
+options without editing existing configuration files.
+
+This should make tracking changes and maintaining local modifications easier.
+
+GOTCHAS AND THINGS TO WATCH OUT FOR
+If you name a local bean and an existing bean the same thing, there will be a major
+collision.  Deployment will fail.  The sky will fall! (okay that last part isn't
+true).    Spring will be merging all of these files together so every bean must
+have unique names.  The only way around this is if you override the file completely.
+i.e. override the ticketRegistry.xml allows you to re-use the "ticketRegistry"
+id.
+ 
+In addition, if there is a typographical/XML parsing error in a file, the
+application will not deploy.

+ 140 - 0
sso/trunk/src/main/webapp/WEB-INF/spring-configuration/applicationContext.xml

@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:p="http://www.springframework.org/schema/p"
+       xmlns:c="http://www.springframework.org/schema/c"
+       xmlns:util="http://www.springframework.org/schema/util"
+       xmlns:aop="http://www.springframework.org/schema/aop"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
+        http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
+    <description>
+        This is the main Spring configuration file with some of the main "core" classes defined. You shouldn't really
+        modify this unless you
+        know what you're doing!
+    </description>
+
+    <!--
+      Including this aspectj-autoproxy element will cause spring to automatically
+      create proxies around any beans defined in this file that match the pointcuts
+      of any aspects defined in this file.
+    -->
+    <aop:aspectj-autoproxy/>
+
+    <!--
+      Declare the TimingAspect that we want to weave into the other beans
+      defined in this config file.
+    -->
+    <bean id="timingAspect" class="org.perf4j.log4j.aop.TimingAspect"/>
+
+
+    <!-- 
+        Message source for this context, loaded from localized "messages_xx" files.]
+        
+    	Disable the fallback mechanism to the system/JVM locale. By turning off this behavior, CAS
+    	will be able to revert back to the default language bundle that is "messages.properties"
+    	and will not rely on the JVM default locale which introduces the side effect of rendering
+    	the UI in the JVM locale by default.
+      
+        Also, explicitly set the default encoding to be UTF-8 when parsing message bundles.
+        The default, if not set, is none which forces ISO-8859-1 of java.util.ResourceBundle.
+    -->
+    <bean id="messageSource" class="org.jasig.cas.web.view.CasReloadableMessageBundle"
+          p:basenames-ref="basenames" p:fallbackToSystemLocale="false" p:defaultEncoding="UTF-8"
+          p:cacheSeconds="180" p:useCodeAsDefaultMessage="true" />
+
+    <util:list id="basenames">
+        <value>classpath:custom_messages</value>
+        <value>classpath:messages</value>
+    </util:list>
+    
+    <bean id="servicesManager" class="org.jasig.cas.services.DefaultServicesManagerImpl"
+        c:serviceRegistryDao-ref="serviceRegistryDao" />
+
+    <!--
+        Job to periodically reload services from service registry.
+        This job is needed for a clustered CAS environment since service changes
+        in one CAS node are not known to the other until a reload.
+    -->
+    <bean id="serviceRegistryReloaderJobDetail"
+          class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"
+          p:targetObject-ref="servicesManager"
+          p:targetMethod="reload"/>
+
+    <bean id="periodicServiceRegistryReloaderTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean"
+          p:jobDetail-ref="serviceRegistryReloaderJobDetail"
+          p:startDelay="${service.registry.quartz.reloader.startDelay:120000}"
+          p:repeatInterval="${service.registry.quartz.reloader.repeatInterval:120000}"/>
+
+    <bean id="httpClient" class="org.jasig.cas.util.SimpleHttpClient"
+          p:readTimeout="5000"
+          p:connectionTimeout="5000"/>
+
+    <bean id="noRedirectHttpClient" class="org.jasig.cas.util.SimpleHttpClient" parent="httpClient"
+          p:followRedirects="false" />
+
+    <bean id="persistentIdGenerator"
+          class="org.jasig.cas.authentication.principal.ShibbolethCompatiblePersistentIdGenerator"
+          p:salt="casrocks"/>
+
+    <bean id="logoutManager" class="org.jasig.cas.logout.LogoutManagerImpl"
+          c:servicesManager-ref="servicesManager"
+          c:httpClient-ref="noRedirectHttpClient"
+          c:logoutMessageBuilder-ref="logoutBuilder"
+          p:disableSingleSignOut="${slo.callbacks.disabled:false}" />
+
+    <bean id="logoutBuilder" class="org.jasig.cas.logout.SamlCompliantLogoutMessageCreator" />
+    
+    <!-- CentralAuthenticationService -->
+    <bean id="centralAuthenticationService" class="org.jasig.cas.CentralAuthenticationServiceImpl">
+        <constructor-arg index="0" ref="ticketRegistry"/>
+        <constructor-arg index="1">
+          <null />
+        </constructor-arg>
+        <constructor-arg index="2" ref="authenticationManager"/>
+        <constructor-arg index="3" ref="ticketGrantingTicketUniqueIdGenerator"/>
+        <constructor-arg index="4" ref="uniqueIdGeneratorsMap"/>
+        <constructor-arg index="5" ref="grantingTicketExpirationPolicy"/>
+        <constructor-arg index="6" ref="serviceTicketExpirationPolicy"/>
+        <constructor-arg index="7" ref="servicesManager"/>
+        <constructor-arg index="8" ref="logoutManager"/>
+        <property name="persistentIdGenerator" ref="persistentIdGenerator"/>
+    </bean>
+
+    <bean id="proxy10Handler" class="org.jasig.cas.ticket.proxy.support.Cas10ProxyHandler"/>
+
+    <bean id="proxy20Handler" class="org.jasig.cas.ticket.proxy.support.Cas20ProxyHandler"
+          p:httpClient-ref="httpClient"
+          p:uniqueTicketIdGenerator-ref="proxy20TicketUniqueIdGenerator"/>
+
+    <!-- ADVISORS -->
+    <bean id="advisorAutoProxyCreator"
+          class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator"/>
+
+    <bean id="validationAnnotationBeanPostProcessor" class="org.jasig.cas.util.CustomBeanValidationPostProcessor"
+            p:afterInitialization="true" />
+
+    <!-- The scheduler bean wires up any triggers that define scheduled tasks -->
+    <bean id="scheduler" class="org.jasig.cas.util.AutowiringSchedulerFactoryBean"/>
+            
+</beans>

+ 39 - 0
sso/trunk/src/main/webapp/WEB-INF/spring-configuration/argumentExtractorsConfiguration.xml

@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:p="http://www.springframework.org/schema/p"
+       xmlns:util="http://www.springframework.org/schema/util"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+       http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
+	<description>
+		Argument Extractors are what are used to translate HTTP requests into requests of the appropriate protocol (i.e. CAS, SAML, SAML2,
+		OpenId, etc.).  By default, only CAS is enabled.
+	</description>
+ 	<bean
+ 		id="casArgumentExtractor"
+ 		class="org.jasig.cas.web.support.CasArgumentExtractor" />
+
+ 	<util:list id="argumentExtractors">
+		<ref bean="casArgumentExtractor" />
+ 	</util:list>
+</beans>

+ 108 - 0
sso/trunk/src/main/webapp/WEB-INF/spring-configuration/auditTrailContext.xml

@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:aop="http://www.springframework.org/schema/aop"
+       xmlns:p="http://www.springframework.org/schema/p"
+       xmlns:c="http://www.springframework.org/schema/c"
+       xmlns:util="http://www.springframework.org/schema/util"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+       http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd
+       http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
+
+  <description>
+  Configuration file for the Inspektr package which handles auditing for Java applications.
+  If enabled this should be modified to log audit and statistics information the same way
+  your local applications do.  The default is currently to log to the console which is good
+  for debugging/testing purposes.
+  </description>
+
+  <aop:aspectj-autoproxy/>
+
+  <bean id="auditTrailManagementAspect" class="com.github.inspektr.audit.AuditTrailManagementAspect"
+    c:applicationCode="CAS" c:auditablePrincipalResolver-ref="auditablePrincipalResolver" 
+    c:auditTrailManagers-ref="auditTrailManager" c:auditActionResolverMap-ref="auditActionResolverMap"
+    c:auditResourceResolverMap-ref="auditResourceResolverMap" />
+
+  <util:map id="auditActionResolverMap">
+    <entry key="AUTHENTICATION_RESOLVER">
+      <ref local="authenticationActionResolver" />
+    </entry>
+    <entry key="CREATE_TICKET_GRANTING_TICKET_RESOLVER">
+      <ref local="ticketCreationActionResolver" />
+    </entry>
+    <entry key="DESTROY_TICKET_GRANTING_TICKET_RESOLVER">
+      <bean class="com.github.inspektr.audit.spi.support.DefaultAuditActionResolver" />
+    </entry>
+    <entry key="GRANT_SERVICE_TICKET_RESOLVER">
+      <ref local="ticketCreationActionResolver" />
+    </entry>
+    <entry key="GRANT_PROXY_GRANTING_TICKET_RESOLVER">
+      <ref local="ticketCreationActionResolver" />
+    </entry>
+    <entry key="VALIDATE_SERVICE_TICKET_RESOLVER">
+      <ref local="ticketValidationActionResolver" />
+    </entry>
+  </util:map>
+  
+  <util:map id="auditResourceResolverMap">
+    <entry key="AUTHENTICATION_RESOURCE_RESOLVER">
+      <bean class="org.jasig.cas.audit.spi.CredentialsAsFirstParameterResourceResolver" />
+    </entry>
+    <entry key="CREATE_TICKET_GRANTING_TICKET_RESOURCE_RESOLVER">
+      <ref local="returnValueResourceResolver" />
+    </entry>
+    <entry key="DESTROY_TICKET_GRANTING_TICKET_RESOURCE_RESOLVER">
+      <ref local="ticketResourceResolver" />
+    </entry>
+    <entry key="GRANT_SERVICE_TICKET_RESOURCE_RESOLVER">
+      <bean class="org.jasig.cas.audit.spi.ServiceResourceResolver" />
+    </entry>
+    <entry key="GRANT_PROXY_GRANTING_TICKET_RESOURCE_RESOLVER">
+      <ref local="returnValueResourceResolver" />
+    </entry>
+    <entry key="VALIDATE_SERVICE_TICKET_RESOURCE_RESOLVER">
+      <ref local="ticketResourceResolver" />
+    </entry>
+  </util:map>
+      
+  <bean id="auditablePrincipalResolver" class="org.jasig.cas.audit.spi.TicketOrCredentialPrincipalResolver"
+    c:ticketRegistry-ref="ticketRegistry" />
+
+  <bean id="authenticationActionResolver"
+    class="com.github.inspektr.audit.spi.support.DefaultAuditActionResolver"
+    c:successSuffix="_SUCCESS" c:failureSuffix="_FAILED" />
+  
+  <bean id="ticketCreationActionResolver"
+    class="com.github.inspektr.audit.spi.support.DefaultAuditActionResolver"
+    c:successSuffix="_CREATED" c:failureSuffix="_NOT_CREATED" />
+  
+  <bean id="ticketValidationActionResolver"
+    class="com.github.inspektr.audit.spi.support.DefaultAuditActionResolver"
+    c:successSuffix="D" c:failureSuffix="_FAILED" />
+  
+  <bean id="returnValueResourceResolver"
+     class="com.github.inspektr.audit.spi.support.ReturnValueAsStringResourceResolver" />
+     
+  <bean id="ticketResourceResolver"
+    class="org.jasig.cas.audit.spi.TicketAsFirstParameterResourceResolver" />
+</beans>

+ 108 - 0
sso/trunk/src/main/webapp/WEB-INF/spring-configuration/cxf-spring-service.xml

@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"
+	xmlns:context="http://www.springframework.org/schema/context"
+	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:jaxws="http://cxf.apache.org/jaxws"
+	xmlns:jaxrs="http://cxf.apache.org/jaxrs"
+	xmlns:http-conf="http://cxf.apache.org/transports/http/configuration"
+	xsi:schemaLocation="
+		http://www.springframework.org/schema/context   
+        http://www.springframework.org/schema/context/spring-context-3.1.xsd
+        http://www.springframework.org/schema/aop
+		http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
+        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
+        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd
+		http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
+		http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd
+		http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd">
+	<import resource="classpath:META-INF/cxf/cxf.xml"/> 
+    <import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>
+
+	
+	<!--  
+	<jaxws:endpoint id="cxfws" implementor="com.cxfws.ws.CxfwsImpl" address="/cxfws"/>
+	
+	<jaxws:endpoint id="cxfws"
+		implementor="com.cxfws.ws.CxfwsImpl" address="/cxfwsService">
+		<jaxws:features>
+			<bean class="org.apache.cxf.feature.LoggingFeature" />
+		</jaxws:features>
+	</jaxws:endpoint>
+	-->
+	
+	<!-- http://127.0.0.1:8080/znjg/service/userWebService?wsdl -->
+	<jaxws:endpoint id="userWebService"
+		implementor="com.jsjty.web.service.impl.UserWebService" address="/userWebService">
+		<jaxws:features>
+			<bean class="org.apache.cxf.feature.LoggingFeature" />
+		</jaxws:features>
+	</jaxws:endpoint>	
+	
+	<!--  
+	<http-conf:conduit name="*.http-conduit">       
+          <http-conf:client ConnectionTimeout="5000" ReceiveTimeout="10000"/>      
+    </http-conf:conduit>
+	-->
+	
+    <jaxws:client id="localhostUserClient" serviceClass="com.jsjty.web.service.IUserWebService" address="http://localhost:8081/znjg/service/userWebService">
+    	<jaxws:outInterceptors>
+    		<bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean>
+    	</jaxws:outInterceptors>
+    </jaxws:client>	
+    <jaxws:client id="oaUserClient" serviceClass="com.jsjty.web.client.OAUserWebService" address="http://10.1.30.50:8083/gkoa/services/userWebService">
+    	<jaxws:outInterceptors>
+    		<bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean>
+    	</jaxws:outInterceptors>
+    </jaxws:client>	
+    <jaxws:client id="jsjyUserClient" serviceClass="com.jsjty.web.client.JsjyUserWebService" address="http://10.1.30.117:18089/userService">
+    	<jaxws:outInterceptors>
+    		<bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean>
+    	</jaxws:outInterceptors>
+    </jaxws:client>
+    <jaxws:client id="aqUserClient" serviceClass="com.jsjty.web.client.AQUserWebService" address="http://10.1.30.114:8089/userNoHandlerService">
+    	<jaxws:outInterceptors>
+    		<bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean>
+    	</jaxws:outInterceptors>
+    </jaxws:client>
+    <jaxws:client id="zyUserClient" serviceClass="com.jsjty.web.client.ZYUserWebService" address="http://10.1.30.115:8080/gkzy/ws/soap/user">
+    	<jaxws:outInterceptors>
+    		<bean class="org.apache.cxf.interceptor.LoggingOutInterceptor"></bean>
+    	</jaxws:outInterceptors>
+    </jaxws:client>    	
+	<!-- 客户端密码配置Bean定义
+	
+	<bean id="passwordCallback" class="com.jsjty.web.client.ClientValidateCallback"> 
+		<property name="userMap"> 
+			<map> 
+				<entry key="admin" value="098f6bcd4621d373cade4e832627b4f6" /> 
+			</map> 
+		</property> 
+	</bean> 
+
+	<jaxws:client id="aqUserClient" serviceClass="com.jsjty.web.client.AQUserWebService" 
+		address="http://192.168.30.140:8088/userService"> 
+      <jaxws:outInterceptors> 
+		<bean class="org.apache.cxf.ws.security.wss4j.WSS4JOutInterceptor"> 
+			<property name="properties"> 
+				<map> 
+					<entry key="action" value="UsernameToken" /> 
+					<entry key="user" value="admin" /> 
+					<entry key="passwordType" value="PasswordText" /> 
+					<entry key="passwordCallbackRef" value-ref="passwordCallback" /> 
+				</map> 
+			</property> 
+		</bean> 
+		</jaxws:outInterceptors> 
+	</jaxws:client>
+ --> 
+	
+	
+	
+	
+	<!-- WebService 
+	<bean class="org.springframework.remoting.jaxws.SimpleJaxWsServiceExporter">
+		<property name="baseAddress"
+				  value="http://${webService.url}:${webService.port}/" />
+	</bean>
+	-->      
+</beans>

+ 29 - 0
sso/trunk/src/main/webapp/WEB-INF/spring-configuration/filters.xml

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:p="http://www.springframework.org/schema/p" xmlns:aop="http://www.springframework.org/schema/aop"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+    <bean id="characterEncodingFilter" class="org.springframework.web.filter.CharacterEncodingFilter"
+            p:encoding="UTF-8"
+            p:forceEncoding="true" />
+</beans>

+ 44 - 0
sso/trunk/src/main/webapp/WEB-INF/spring-configuration/log4jConfiguration.xml

@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:p="http://www.springframework.org/schema/p"
+       xmlns:util="http://www.springframework.org/schema/util"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+       http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
+
+    <description>
+        Log4J initialization.  Configuration options are sourced from cas.properties.  This allows deployers to externalize
+        both cas.properties and log4j.xml, so that a single cas.war file can be deployed to multiple tiers or hosts without
+        having to do any post configuration.  This approach helps to preserve configuration between upgrades.
+
+        Deployers should not have to edit this file.
+    </description>
+
+    <bean id="log4jInitialization" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"
+        p:targetClass="org.springframework.util.Log4jConfigurer" p:targetMethod="initLogging" p:arguments-ref="arguments"/>
+    
+    <util:list id="arguments">
+       <value>${log4j.config.location:classpath:log4j.xml}</value>
+       <value>${log4j.refresh.interval:60000}</value>
+    </util:list>
+</beans>

+ 36 - 0
sso/trunk/src/main/webapp/WEB-INF/spring-configuration/propertyFileConfigurer.xml

@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:p="http://www.springframework.org/schema/p"
+       xmlns:context="http://www.springframework.org/schema/context"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
+	<description>
+		This file lets CAS know where you've stored the cas.properties file which details some of the configuration options
+		that are specific to your environment.  You can specify the location of the file here.  You may wish to place the file outside
+		of the Servlet context if you have options that are specific to a tier (i.e. test vs. production) so that the WAR file 
+		can be moved between tiers without modification.
+	</description>
+    
+    <context:property-placeholder location="/WEB-INF/cas.properties"/> 
+</beans>

+ 44 - 0
sso/trunk/src/main/webapp/WEB-INF/spring-configuration/securityContext.xml

@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:p="http://www.springframework.org/schema/p"
+       xmlns:sec="http://www.springframework.org/schema/security"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+       http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd">
+
+  <description>
+    Security configuration for sensitive areas of CAS : status and statistics.
+  </description>
+
+  <sec:authentication-manager />
+
+  <sec:http pattern="/status/**" entry-point-ref="notAuthorizedEntryPoint" use-expressions="true" auto-config="true">
+    <sec:intercept-url pattern="/status" access="hasIpAddress('${cas.securityContext.status.allowedSubnet}')" />
+  </sec:http>
+
+  <sec:http pattern="/statistics/**" entry-point-ref="notAuthorizedEntryPoint" use-expressions="true" auto-config="true">
+    <sec:intercept-url pattern="/statistics" access="hasIpAddress('${cas.securityContext.status.allowedSubnet}')" />
+  </sec:http>
+
+  <bean id="notAuthorizedEntryPoint" class="org.springframework.security.web.authentication.Http403ForbiddenEntryPoint" />
+</beans>

+ 47 - 0
sso/trunk/src/main/webapp/WEB-INF/spring-configuration/ticketExpirationPolicies.xml

@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:p="http://www.springframework.org/schema/p"
+       xmlns:c="http://www.springframework.org/schema/c" xmlns:util="http://www.springframework.org/schema/util"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans
+                           http://www.springframework.org/schema/beans/spring-beans.xsd
+                           http://www.springframework.org/schema/util
+                           http://www.springframework.org/schema/util/spring-util.xsd">
+    <description>
+        Assignment of expiration policies for the different tickets generated by CAS including ticket granting ticket
+        (TGT), service ticket (ST), proxy granting ticket (PGT), and proxy ticket (PT).
+        These expiration policies determine how long the ticket they are assigned to can be used and even how often they
+        can be used before becoming expired / invalid.
+    </description>
+
+    <!-- Expiration policies -->
+    <util:constant id="SECONDS" static-field="java.util.concurrent.TimeUnit.SECONDS"/>
+    <bean id="serviceTicketExpirationPolicy" class="org.jasig.cas.ticket.support.MultiTimeUseOrTimeoutExpirationPolicy"
+          c:numberOfUses="1" c:timeToKill="${st.timeToKillInSeconds:10}" c:timeUnit-ref="SECONDS"/>
+
+    <!-- TicketGrantingTicketExpirationPolicy: Default as of 3.5 -->
+    <!-- Provides both idle and hard timeouts, for instance 2 hour sliding window with an 8 hour max lifetime -->
+    <bean id="grantingTicketExpirationPolicy" class="org.jasig.cas.ticket.support.TicketGrantingTicketExpirationPolicy"
+          p:maxTimeToLiveInSeconds="${tgt.maxTimeToLiveInSeconds:28800}"
+          p:timeToKillInSeconds="${tgt.timeToKillInSeconds:7200}"/>
+</beans>

+ 35 - 0
sso/trunk/src/main/webapp/WEB-INF/spring-configuration/ticketGrantingTicketCookieGenerator.xml

@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:p="http://www.springframework.org/schema/p"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+	<description>
+		Defines the cookie that stores the TicketGrantingTicket.  You most likely should never modify these (especially the "secure" property).
+		You can change the name if you want to make it harder for people to guess.
+	</description>
+	<bean id="ticketGrantingTicketCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
+		p:cookieSecure="true"
+		p:cookieMaxAge="-1"
+		p:cookieName="CASTGC"
+		p:cookiePath="/cas" />
+</beans>

+ 47 - 0
sso/trunk/src/main/webapp/WEB-INF/spring-configuration/ticketRegistry.xml

@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:p="http://www.springframework.org/schema/p"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+    <description>
+    	Configuration for the default TicketRegistry which stores the tickets in-memory and cleans them out as specified intervals.
+    </description>
+       
+  <!-- Ticket Registry -->
+  <bean id="ticketRegistry" class="org.jasig.cas.ticket.registry.DefaultTicketRegistry" />
+	
+	<!--Quartz -->
+	<!-- TICKET REGISTRY CLEANER -->
+	<bean id="ticketRegistryCleaner" class="org.jasig.cas.ticket.registry.support.DefaultTicketRegistryCleaner"
+		p:ticketRegistry-ref="ticketRegistry"
+		p:logoutManager-ref="logoutManager" />
+	
+	<bean id="jobDetailTicketRegistryCleaner" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"
+		p:targetObject-ref="ticketRegistryCleaner"
+		p:targetMethod="clean" />
+	
+	<bean id="triggerJobDetailTicketRegistryCleaner" class="org.springframework.scheduling.quartz.SimpleTriggerBean"
+		p:jobDetail-ref="jobDetailTicketRegistryCleaner"
+		p:startDelay="20000"
+		p:repeatInterval="5000000" />
+</beans>

+ 53 - 0
sso/trunk/src/main/webapp/WEB-INF/spring-configuration/uniqueIdGenerators.xml

@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:p="http://www.springframework.org/schema/p"
+       xmlns:c="http://www.springframework.org/schema/c"
+       xmlns:util="http://www.springframework.org/schema/util"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+       http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
+    <description>
+    Controls the generation of the unique identifiers for tickets.  You most likely do not need to modify these.  Though you may need to add
+    the SAML ticket id generator.
+    </description>
+       
+	<!-- ID Generators -->
+	<bean id="ticketGrantingTicketUniqueIdGenerator" class="org.jasig.cas.util.DefaultUniqueTicketIdGenerator"
+        c:maxLength="50" c:suffix="${host.name}" />
+
+	<bean id="serviceTicketUniqueIdGenerator" class="org.jasig.cas.util.DefaultUniqueTicketIdGenerator"
+        c:maxLength="20" c:suffix="${host.name}" />
+
+    <bean id="loginTicketUniqueIdGenerator" class="org.jasig.cas.util.DefaultUniqueTicketIdGenerator"
+        c:maxLength="30" c:suffix="${host.name}" />
+    	
+    <bean id="proxy20TicketUniqueIdGenerator" class="org.jasig.cas.util.DefaultUniqueTicketIdGenerator"
+        c:maxLength="20" c:suffix="${host.name}" />
+	 
+	<util:map id="uniqueIdGeneratorsMap">
+		<entry
+			key="org.jasig.cas.authentication.principal.SimpleWebApplicationServiceImpl"
+			value-ref="serviceTicketUniqueIdGenerator" />
+	</util:map>
+
+</beans>

+ 36 - 0
sso/trunk/src/main/webapp/WEB-INF/spring-configuration/warnCookieGenerator.xml

@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:p="http://www.springframework.org/schema/p"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+	<description>
+	This Spring Configuration file describes the cookie used to store the WARN parameter so that a user is warned whenever the CAS service
+	is used.  You would modify this if you wanted to change the cookie path or the name.
+	</description>
+	
+	<bean id="warnCookieGenerator" class="org.jasig.cas.web.support.CookieRetrievingCookieGenerator"
+		p:cookieSecure="true"
+		p:cookieMaxAge="-1"
+		p:cookieName="CASPRIVACY"
+		p:cookiePath="/cas" />
+</beans>

+ 98 - 0
sso/trunk/src/main/webapp/WEB-INF/unused-spring-configuration/clearpass-configuration.xml

@@ -0,0 +1,98 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:p="http://www.springframework.org/schema/p"
+       xmlns:c="http://www.springframework.org/schema/c"
+       xmlns:util="http://www.springframework.org/schema/util"
+       xmlns:sec="http://www.springframework.org/schema/security"
+       xsi:schemaLocation="
+       http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
+       http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security.xsd
+       http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">
+
+  <!-- Credentials Cache implementation -->
+  <bean id="ehCacheManager" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"
+        p:configLocation="classpath:ehcacheClearPass.xml" 
+        p:shared="false"
+        p:cacheManagerName="ehCacheClearPassCacheManger"/>
+
+  <bean id="clearPassEhCache" class="org.springframework.cache.ehcache.EhCacheFactoryBean"
+        p:cacheManager-ref="ehCacheManager"
+        p:cacheName="clearPassCache"/>
+
+  <bean id="credentialsCache" class="org.jasig.cas.extension.clearpass.EhcacheBackedMap"
+    c:cache-ref="clearPassEhCache"/>
+  
+  <bean id="encryptedMap" class="org.jasig.cas.extension.clearpass.EncryptedMapDecorator"
+    c:decoratedMap-ref="credentialsCache"/>
+
+  <!--
+    NOTE:
+    Name of delegated ticket registry bean in ticketRegistry.xml must be "ticketRegistryValue."
+  -->
+  <bean id="ticketRegistry" class="org.jasig.cas.extension.clearpass.TicketRegistryDecorator"
+    c:actualTicketRegistry-ref="ticketRegistryValue" c:cache-ref="encryptedMap" />
+
+  <!-- implementation of the clear pass vending service -->
+  <bean id="clearPassController" class="org.jasig.cas.extension.clearpass.ClearPassController"
+    c:credentialsCache-ref="encryptedMap"/>
+
+  <bean id="handlerMappingClearPass" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"
+        p:alwaysUseFullPath="true" p:mappings-ref="mappings" />
+
+  <util:properties id="mappings">
+    <prop key="/clearPass">clearPassController</prop>
+  </util:properties>
+      
+  <!-- Security configuration -->
+  <bean id="clearPassFilterChainProxy" class="org.springframework.security.web.FilterChainProxy">
+    <sec:filter-chain-map request-matcher="ant">
+      <sec:filter-chain pattern="/clearPass"
+                        filters="casValidationFilter,httpServletRequestWrappingFilter"/>
+    </sec:filter-chain-map>
+  </bean>
+  <!-- NOTE:
+	 It is dangerous to include a non-proxied CAS Filter for protecting /clearPass. Non-proxied CAS Filters
+	 like AuthenticationFilter don't honor the Filter chain proxy protection mechanism and, worse yet, allow access to the
+	 logged on user's cleartext password. It could be useful to enable this bean for easy testing of clearPass functionality however.-->
+   <!--
+  <bean id="casAuthenticationFilter" class="org.jasig.cas.client.authentication.AuthenticationFilter">
+    <property name="casServerLoginUrl" value="${cas.securityContext.casProcessingFilterEntryPoint.loginUrl}"/>
+    <property name="serverName" value="${server.name}"/>
+  </bean>
+  -->
+  <!--
+    NOTE:
+    A bean named clearPassProxyList must be defined in deployerConfigContext.xml that defines
+    the list of proxying services authorized to obtain clearpass credential.
+  -->
+  <bean id="casValidationFilter" class="org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter"
+        p:serverName="${server.name}" p:exceptionOnValidationFailure="false" 
+        p:useSession="true" p:ticketValidator-ref="clearPassTicketValidator" />
+
+  <bean id="clearPassTicketValidator" class="org.jasig.cas.client.validation.Cas20ProxyTicketValidator"
+        c:casServerUrlPrefix="${server.prefix}" p:allowedProxyChains-ref="clearPassProxyList" />
+
+  <bean id="httpServletRequestWrappingFilter" class="org.jasig.cas.client.util.HttpServletRequestWrapperFilter"/>
+
+</beans>

+ 42 - 0
sso/trunk/src/main/webapp/WEB-INF/unused-spring-configuration/lppe-configuration.xml

@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:p="http://www.springframework.org/schema/p"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+
+  <!--
+     | Sample LDAP password policy configuration.
+     | There are notable configuration requirements for LDAP components required for password policy
+     | depending on the directory (Active Directory, OpenLDAP, etc).
+     | See CAS documentation for more information.
+    -->
+  <bean id="passwordPolicy" class="org.jasig.cas.authentication.support.LdapPasswordPolicyConfiguration"
+        p:alwaysDisplayPasswordExpirationWarning="${password.policy.warnAll}"
+        p:passwordWarningNumberOfDays="${password.policy.warningDays}"
+        p:passwordPolicyUrl="${password.policy.url}"
+        p:accountStateHandler-ref="accountStateHandler" />
+
+  <!-- This component is suitable for most cases but can be replaced with a custom component for special cases. -->
+  <bean id="accountStateHandler" class="org.jasig.cas.authentication.support.DefaultAccountStateHander" />
+
+</beans>

+ 53 - 0
sso/trunk/src/main/webapp/WEB-INF/unused-spring-configuration/mbeans.xml

@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:p="http://www.springframework.org/schema/p"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
+    <description>
+    	Configuration for the MBeans to support JMX.
+    </description>
+
+     <bean id="exporter" class="org.springframework.jmx.export.MBeanExporter">
+        <property name="assembler" ref="assembler"/>
+        <property name="namingStrategy" ref="namingStrategy"/>
+        <property name="autodetect" value="true"/>
+    </bean>
+
+    <bean id="jmxAttributeSource" class="org.springframework.jmx.export.annotation.AnnotationJmxAttributeSource"/>
+
+    <!-- will create management interface using annotation metadata -->
+    <bean id="assembler"
+          class="org.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler">
+        <property name="attributeSource" ref="jmxAttributeSource"/>
+    </bean>
+
+    <!-- will pick up the ObjectName from the annotation -->
+    <bean id="namingStrategy"
+          class="org.springframework.jmx.export.naming.MetadataNamingStrategy">
+        <property name="attributeSource" ref="jmxAttributeSource"/>
+    </bean>
+
+    <bean id="reloadbleServicesManagerMBean" class="org.jasig.cas.services.jmx.ReloadableServicesManagerMBean">
+        <constructor-arg index="0" ref="servicesManager" />
+    </bean>
+</beans>

+ 60 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/authorizationFailure.jsp

@@ -0,0 +1,60 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<jsp:directive.include file="/WEB-INF/view/jsp/default/ui/includes/top.jsp" />
+
+<%@ page import="org.jasig.cas.web.support.WebUtils"%>
+<%@ page import="org.springframework.security.web.WebAttributes"%>
+
+
+<div id="msg" class="errors">
+	<h2><spring:message code="screen.blocked.header" /></h2>
+	<%
+        // Look for details of authorization failure in well-known request attributes.
+        final String[] keys = new String[] {WebUtils.CAS_ACCESS_DENIED_REASON, WebAttributes.AUTHENTICATION_EXCEPTION};
+        Object detail = null;
+        for (String key : keys) {
+            detail = request.getAttribute(key);
+            if (detail == null) {
+                detail = request.getSession().getAttribute(key);
+                request.getSession().removeAttribute(key);
+            }
+            if (detail != null) {
+                break;
+            }
+        }
+        if (detail instanceof String) {
+            request.setAttribute("messageKey", detail);
+        } else if (detail instanceof Exception) {
+            final Exception cause = (Exception) detail;
+            final String message = String.format("%s::%s", cause.getClass().getSimpleName(), cause.getMessage());
+            request.setAttribute("message", message);
+        }
+    %>
+    <c:choose>
+        <c:when test="${not empty messageKey}">
+            <p><spring:message code="${messageKey}" /></p>
+        </c:when>
+        <c:when test="${not empty message}">
+            <p><c:out value="${message}" escapeXml="true" /></p>
+        </c:when>
+    </c:choose>
+</div>
+<jsp:directive.include file="/WEB-INF/view/jsp/default/ui/includes/bottom.jsp" />

+ 26 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/casAccountDisabledView.jsp

@@ -0,0 +1,26 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<jsp:directive.include file="includes/top.jsp" />
+  <div id="msg" class="errors">
+    <h2><spring:message code="screen.accountdisabled.heading" /></h2>
+    <p><spring:message code="screen.accountdisabled.message" /></p>
+  </div>
+<jsp:directive.include file="includes/bottom.jsp" />

+ 26 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/casAccountLockedView.jsp

@@ -0,0 +1,26 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<jsp:directive.include file="includes/top.jsp" />
+  <div id="msg" class="errors">
+    <h2><spring:message code="screen.accountlocked.heading" /></h2>
+    <p><spring:message code="screen.accountlocked.message" /></p>
+  </div>
+<jsp:directive.include file="includes/bottom.jsp" />

+ 26 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/casBadHoursView.jsp

@@ -0,0 +1,26 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<jsp:directive.include file="includes/top.jsp" />
+  <div id="msg" class="errors">
+    <h2><spring:message code="screen.badhours.heading" /></h2>
+    <p><spring:message code="screen.badhours.message" /></p>
+  </div>
+<jsp:directive.include file="includes/bottom.jsp" />

+ 26 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/casBadWorkstationView.jsp

@@ -0,0 +1,26 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<jsp:directive.include file="includes/top.jsp" />
+  <div id="msg" class="errors">
+    <h2><spring:message code="screen.badworkstation.heading" /></h2>
+    <p><spring:message code="screen.badworkstation.message" /></p>
+  </div>
+<jsp:directive.include file="includes/bottom.jsp" />

+ 25 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/casConfirmView.jsp

@@ -0,0 +1,25 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<jsp:directive.include file="includes/top.jsp" />
+  <div id="msg" class="info">
+    <p><spring:message code="screen.confirmation.message" arguments="${fn:escapeXml(param.service)}${fn:indexOf(param.service, '?') eq -1 ? '?' : '&'}ticket=${serviceTicketId}" /></p>
+  </div>
+<jsp:directive.include file="includes/bottom.jsp" />

+ 26 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/casExpiredPassView.jsp

@@ -0,0 +1,26 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<jsp:directive.include file="includes/top.jsp" />
+  <div id="msg" class="errors">
+    <h2><spring:message code="screen.expiredpass.heading" /></h2>
+    <p><spring:message code="screen.expiredpass.message" arguments="${passwordPolicyUrl}" /></p>
+  </div>
+<jsp:directive.include file="includes/bottom.jsp" />

+ 28 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/casGenericSuccess.jsp

@@ -0,0 +1,28 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<jsp:directive.include file="includes/top.jsp" />
+  <div id="msg" class="success">
+    <h2><spring:message code="screen.success.header" /></h2>
+    <p><spring:message code="screen.success.success" /></p>
+    <p><spring:message code="screen.success.security" /></p>
+  </div>
+<jsp:directive.include file="includes/bottom.jsp" />
+

+ 37 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/casLoginMessageView.jsp

@@ -0,0 +1,37 @@
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<jsp:directive.include file="includes/top.jsp" />
+
+<div id="msg" class="warn">
+  <h2>Authentication Succeeded with Warnings</h2>
+
+<c:forEach items="${messages}" var="message">
+  <p class="message">${message.text}</p>
+</c:forEach>
+
+</div>
+
+<div id="big-buttons">
+ <a class="button" href="login?execution=${flowExecutionKey}&_eventId=proceed">Continue</a>
+</div>
+
+<jsp:directive.include file="includes/bottom.jsp" />

+ 152 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/casLoginView.jsp

@@ -0,0 +1,152 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<jsp:directive.include file="includes/top.jsp" />
+
+<c:if test="${not pageContext.request.secure}">
+  <div id="msg" class="errors">
+    <h2>Non-secure Connection</h2>
+    <p>You are currently accessing CAS over a non-secure connection.  Single Sign On WILL NOT WORK.  In order to have single sign on work, you MUST log in over HTTPS.</p>
+  </div>
+</c:if>
+
+<div class="box" id="login">
+  <form:form method="post" id="fm1" commandName="${commandName}" htmlEscape="true">
+
+    <form:errors path="*" id="msg" cssClass="errors" element="div" htmlEscape="false" />
+  
+    <h2><spring:message code="screen.welcome.instructions" /></h2>
+  
+    <section class="row">
+      <label for="username"><spring:message code="screen.welcome.label.netid" /></label>
+      <c:choose>
+        <c:when test="${not empty sessionScope.openIdLocalId}">
+          <strong>${sessionScope.openIdLocalId}</strong>
+          <input type="hidden" id="username" name="username" value="${sessionScope.openIdLocalId}" />
+        </c:when>
+        <c:otherwise>
+          <spring:message code="screen.welcome.label.netid.accesskey" var="userNameAccessKey" />
+          <form:input cssClass="required" cssErrorClass="error" id="username" size="25" tabindex="1" accesskey="${userNameAccessKey}" path="username" autocomplete="off" htmlEscape="true" />
+        </c:otherwise>
+      </c:choose>
+    </section>
+    
+    <section class="row">
+      <label for="password"><spring:message code="screen.welcome.label.password" /></label>
+      <%--
+      NOTE: Certain browsers will offer the option of caching passwords for a user.  There is a non-standard attribute,
+      "autocomplete" that when set to "off" will tell certain browsers not to prompt to cache credentials.  For more
+      information, see the following web page:
+      http://www.technofundo.com/tech/web/ie_autocomplete.html
+      --%>
+      <spring:message code="screen.welcome.label.password.accesskey" var="passwordAccessKey" />
+      <form:password cssClass="required" cssErrorClass="error" id="password" size="25" tabindex="2" path="password"  accesskey="${passwordAccessKey}" htmlEscape="true" autocomplete="off" />
+    </section>
+    
+    <section class="row check">
+      <input id="warn" name="warn" value="true" tabindex="3" accesskey="<spring:message code="screen.welcome.label.warn.accesskey" />" type="checkbox" />
+      <label for="warn"><spring:message code="screen.welcome.label.warn" /></label>
+    </section>
+    
+    <section class="row btn-row">
+      <input type="hidden" name="lt" value="${loginTicket}" />
+      <input type="hidden" name="execution" value="${flowExecutionKey}" />
+      <input type="hidden" name="_eventId" value="submit" />
+
+      <input class="btn-submit" name="submit" accesskey="l" value="<spring:message code="screen.welcome.button.login" />" tabindex="4" type="submit" />
+      <input class="btn-reset" name="reset" accesskey="c" value="<spring:message code="screen.welcome.button.clear" />" tabindex="5" type="reset" />
+    </section>
+  </form:form>
+</div>
+  
+<div id="sidebar">
+  <div class="sidebar-content">
+    <p><spring:message code="screen.welcome.security" /></p>
+    
+    <div id="list-languages">
+      <%final String queryString = request.getQueryString() == null ? "" : request.getQueryString().replaceAll("&locale=([A-Za-z][A-Za-z]_)?[A-Za-z][A-Za-z]|^locale=([A-Za-z][A-Za-z]_)?[A-Za-z][A-Za-z]", "");%>
+      <c:set var='query' value='<%=queryString%>' />
+      <c:set var="xquery" value="${fn:escapeXml(query)}" />
+      
+      <h3>Languages:</h3>
+      
+      <c:choose>
+        <c:when test="${not empty requestScope['isMobile'] and not empty mobileCss}">
+          <form method="get" action="login?${xquery}">
+            <select name="locale">
+              <option value="en">English</option>
+              <option value="es">Spanish</option>
+              <option value="fr">French</option>
+              <option value="ru">Russian</option>
+              <option value="nl">Nederlands</option>
+              <option value="sv">Svenska</option>
+              <option value="it">Italiano</option>
+              <option value="ur">Urdu</option>
+              <option value="zh_CN">Chinese (Simplified)</option>
+              <option value="zh_TW">Chinese (Traditional)</option>
+              <option value="de">Deutsch</option>
+              <option value="ja">Japanese</option>
+              <option value="hr">Croatian</option>
+              <option value="cs">Czech</option>
+              <option value="sl">Slovenian</option>
+              <option value="pl">Polish</option>
+              <option value="ca">Catalan</option>
+              <option value="mk">Macedonian</option>
+              <option value="fa">Farsi</option>
+              <option value="ar">Arabic</option>
+              <option value="pt_PT">Portuguese</option>
+              <option value="pt_BR">Portuguese (Brazil)</option>
+            </select>
+            <input type="submit" value="Switch">
+          </form>
+        </c:when>
+        <c:otherwise>
+          <c:set var="loginUrl" value="login?${xquery}${not empty xquery ? '&' : ''}locale=" />
+          <ul>
+            <li class="first"><a href="${loginUrl}en">English</a></li>
+            <li><a href="${loginUrl}es">Spanish</a></li>
+            <li><a href="${loginUrl}fr">French</a></li>
+            <li><a href="${loginUrl}ru">Russian</a></li>
+            <li><a href="${loginUrl}nl">Nederlands</a></li>
+            <li><a href="${loginUrl}sv">Svenska</a></li>
+            <li><a href="${loginUrl}it">Italiano</a></li>
+            <li><a href="${loginUrl}ur">Urdu</a></li>
+            <li><a href="${loginUrl}zh_CN">Chinese (Simplified)</a></li>
+            <li><a href="${loginUrl}zh_TW">Chinese (Traditional)</a></li>
+            <li><a href="${loginUrl}de">Deutsch</a></li>
+            <li><a href="${loginUrl}ja">Japanese</a></li>
+            <li><a href="${loginUrl}hr">Croatian</a></li>
+            <li><a href="${loginUrl}cs">Czech</a></li>
+            <li><a href="${loginUrl}sl">Slovenian</a></li>
+            <li><a href="${loginUrl}ca">Catalan</a></li>
+            <li><a href="${loginUrl}mk">Macedonian</a></li>
+            <li><a href="${loginUrl}fa">Farsi</a></li>
+            <li><a href="${loginUrl}ar">Arabic</a></li>
+            <li><a href="${loginUrl}pt_PT">Portuguese</a></li>
+            <li><a href="${loginUrl}pt_BR">Portuguese (Brazil)</a></li>
+            <li class="last"><a href="${loginUrl}pl">Polish</a></li>
+          </ul>
+        </c:otherwise>
+      </c:choose>
+    </div>
+  </div>
+</div>
+
+<jsp:directive.include file="includes/bottom.jsp" />

+ 27 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/casLogoutView.jsp

@@ -0,0 +1,27 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<jsp:directive.include file="includes/top.jsp" />
+  <div id="msg" class="success">
+    <h2><spring:message code="screen.logout.header" /></h2>
+    <p><spring:message code="screen.logout.success" /></p>
+    <p><spring:message code="screen.logout.security" /></p>
+  </div>
+<jsp:directive.include file="includes/bottom.jsp" />

+ 26 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/casMustChangePassView.jsp

@@ -0,0 +1,26 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<jsp:directive.include file="includes/top.jsp" />
+  <div id="msg" class="errors">
+    <h2><spring:message code="screen.mustchangepass.heading" /></h2>
+    <p><spring:message code="screen.mustchangepass.message" arguments="${passwordPolicyUrl}"  /></p>
+  </div>
+<jsp:directive.include file="includes/bottom.jsp" />

+ 47 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/includes/bottom.jsp

@@ -0,0 +1,47 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+
+      </div> <!-- END #content -->
+      
+      <footer>
+        <div id="copyright">
+          <p><spring:message code="copyright" /></p>
+          <p>Powered by <a href="http://www.jasig.org/cas">Jasig Central Authentication Service <%=org.jasig.cas.CasVersion.getVersion()%></a></p>
+        </div>
+      </footer>
+
+    </div> <!-- END #container -->
+    
+    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
+    <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
+    
+    <%-- 
+        JavaScript Debug: A simple wrapper for console.log 
+        See this link for more info: http://benalman.com/projects/javascript-debug-console-log/
+    --%>
+    <script type="text/javascript" src="https://github.com/cowboy/javascript-debug/raw/master/ba-debug.min.js"></script>
+    
+    <spring:theme code="cas.javascript.file" var="casJavascriptFile" text="" />
+    <script type="text/javascript" src="<c:url value="${casJavascriptFile}" />"></script>
+  </body>
+</html>
+

+ 50 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/includes/top.jsp

@@ -0,0 +1,50 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<!DOCTYPE html>
+
+<%@ page pageEncoding="UTF-8" %>
+<%@ page contentType="text/html; charset=UTF-8" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
+<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
+
+<html lang="en">
+<head>
+  <meta charset="UTF-8" />
+  
+  <title>CAS &#8211; Central Authentication Service</title>
+  
+  <spring:theme code="standard.custom.css.file" var="customCssFile" />
+  <link rel="stylesheet" href="<c:url value="${customCssFile}" />" />
+  <link rel="icon" href="<c:url value="/favicon.ico" />" type="image/x-icon" />
+  
+  <!--[if lt IE 9]>
+    <script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.6.1/html5shiv.js" type="text/javascript"></script>
+  <![endif]-->
+</head>
+<body id="cas">
+  <div id="container">
+      <header>
+        <a id="logo" href="http://www.jasig.org" title="<spring:message code="logo.title" />">Jasig</a>
+        <h1>Central Authentication Service (CAS)</h1>
+      </header>
+      <div id="content">

+ 31 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/serviceErrorSsoView.jsp

@@ -0,0 +1,31 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<jsp:directive.include file="includes/top.jsp" />
+  <c:url var="url" value="/login">
+    <c:param name="service" value="${param.service}" />
+    <c:param name="renew" value="true" />
+  </c:url>
+  
+  <div id="msg" class="errors">
+    <h2><spring:message code="screen.service.sso.error.header" /></h2>
+    <p><spring:message code="screen.service.sso.error.message"  arguments="${url}" /></p>
+  </div>
+<jsp:directive.include file="includes/bottom.jsp" />

+ 26 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/default/ui/serviceErrorView.jsp

@@ -0,0 +1,26 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<jsp:directive.include file="includes/top.jsp" />
+  <div id="msg" class="errors">
+    <h2><spring:message code="screen.service.error.header" /></h2>
+    <p><spring:message code="${rootCauseException.code}" /></p>
+  </div>
+<jsp:directive.include file="includes/bottom.jsp" />

+ 26 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/errors.jsp

@@ -0,0 +1,26 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<jsp:directive.include file="default/ui/includes/top.jsp" />
+  <div id="msg" class="errors">
+    <h2><spring:message code="screen.unavailable.heading" /></h2>
+    <p><spring:message code="screen.unavailable.message" /></p>
+  </div>
+<jsp:directive.include file="default/ui/includes/bottom.jsp" />

+ 102 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/monitoring/viewStatistics.jsp

@@ -0,0 +1,102 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<%@include file="/WEB-INF/view/jsp/default/ui/includes/top.jsp"%>
+
+<h2>Runtime Statistics</h2>
+<table width="800">
+    <thead>
+        <tr>
+            <th>Property</th>
+            <th>Value</th>
+        </tr>
+    </thead>
+    <tbody>
+        <tr>
+            <td>Server</td>
+            <td>${serverIpAddress} (${serverHostName})</td>
+        </tr>
+        <tr>
+            <td>CAS Ticket Suffix</td>
+            <td>${casTicketSuffix}</td>
+        </tr>
+        <tr>
+            <td>Server Start Time</td>
+            <td>${startTime}</td>
+        </tr>
+        <tr>
+            <td>Uptime</td>
+            <td>${upTime}</td>
+        </tr>
+        <tr>
+            <td>Memory</td>
+            <td> ${freeMemory} MB free <img src="images/green.gif" width="${freeMemory / (totalMemory) * 500}" height="30" /><img src="images/red.gif" width="${(totalMemory - freeMemory) / totalMemory * 500}" height="30" /> ${totalMemory} MB total </td>
+        </tr>
+        <tr>
+            <td>Maximum Memory</td>
+            <td>${maxMemory} MB</td>
+        </tr>
+        <tr>
+            <td>Available Processors</td>
+            <td>${availableProcessors}</td>
+        </tr>
+    </tbody>
+</table>
+
+<br /><br />
+
+<h2>Ticket Registry Statistics</h2>
+<table width="800">
+    <thead>
+        <tr>
+            <th>Property</th>
+            <th>Value</th>
+        </tr>
+    </thead>
+    <tbody>
+        <tr>
+            <td>Unexpired TGTs</td>
+            <td>${unexpiredTgts}</td>
+        </tr>
+        <tr>
+            <td>Unexpired STs</td>
+            <td>${unexpiredSts}</td>
+        </tr>
+        <tr>
+            <td>Expired TGTs</td>
+            <td>${expiredTgts}</td>
+        </tr>
+        <tr>
+            <td>Expired STs</td>
+            <td>${expiredSts}</td>
+        </tr>
+    </tbody>
+</table>
+
+<h2>Performance Statistics</h2>
+
+<c:forEach items="${graphingStatisticAppenders}" var="appender">
+<h3>${appender.name}</h3>
+
+<img src="${appender.chartGenerator.chartUrl}" alt="${appender.name}" />
+
+</c:forEach>
+
+<%@include file="/WEB-INF/view/jsp/default/ui/includes/bottom.jsp" %>

+ 27 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/2.0/casProxyFailureView.jsp

@@ -0,0 +1,27 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<%@ page session="false" contentType="application/xml; charset=UTF-8" %>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
+<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
+	<cas:proxyFailure code='${code}'>
+		${fn:escapeXml(description)}
+	</cas:proxyFailure>
+</cas:serviceResponse>

+ 27 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/2.0/casProxySuccessView.jsp

@@ -0,0 +1,27 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<%@ page session="false" contentType="application/xml; charset=UTF-8" %>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
+<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
+	<cas:proxySuccess>
+		<cas:proxyTicket>${fn:escapeXml(ticket)}</cas:proxyTicket>
+	</cas:proxySuccess>
+</cas:serviceResponse>

+ 27 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/2.0/casServiceValidationFailure.jsp

@@ -0,0 +1,27 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<%@ page session="false" contentType="application/xml; charset=UTF-8" %>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
+<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
+	<cas:authenticationFailure code='${code}'>
+		${fn:escapeXml(description)}
+	</cas:authenticationFailure>
+</cas:serviceResponse>

+ 38 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/2.0/casServiceValidationSuccess.jsp

@@ -0,0 +1,38 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<%@ page session="false" contentType="application/xml; charset=UTF-8" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
+	<cas:authenticationSuccess>
+		<cas:user>${fn:escapeXml(assertion.primaryAuthentication.principal.id)}</cas:user>
+        <c:if test="${not empty pgtIou}">
+        		<cas:proxyGrantingTicket>${pgtIou}</cas:proxyGrantingTicket>
+        </c:if>
+        <c:if test="${fn:length(assertion.chainedAuthentications) > 1}">
+		  <cas:proxies>
+            <c:forEach var="proxy" items="${assertion.chainedAuthentications}" varStatus="loopStatus" begin="0" end="${fn:length(assertion.chainedAuthentications)-2}" step="1">
+			     <cas:proxy>${fn:escapeXml(proxy.principal.id)}</cas:proxy>
+            </c:forEach>
+		  </cas:proxies>
+        </c:if>
+	</cas:authenticationSuccess>
+</cas:serviceResponse>

+ 27 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/3.0/casServiceValidationFailure.jsp

@@ -0,0 +1,27 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<%@ page session="false" contentType="application/xml; charset=UTF-8" %>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
+<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
+	<cas:authenticationFailure code='${code}'>
+		${fn:escapeXml(description)}
+	</cas:authenticationFailure>
+</cas:serviceResponse>

+ 70 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/3.0/casServiceValidationSuccess.jsp

@@ -0,0 +1,70 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<%@ page session="false" contentType="application/xml; charset=UTF-8" %>
+<%@ page import="java.util.Map.Entry" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<cas:serviceResponse xmlns:cas='http://www.yale.edu/tp/cas'>
+    <cas:authenticationSuccess>
+        <cas:user>${fn:escapeXml(assertion.primaryAuthentication.principal.id)}</cas:user>
+        <c:if test="${not empty pgtIou}">
+            <cas:proxyGrantingTicket>${pgtIou}</cas:proxyGrantingTicket>
+        </c:if>
+        <c:if test="${fn:length(assertion.chainedAuthentications) > 1}">
+            <cas:proxies>
+                <c:forEach var="proxy" items="${assertion.chainedAuthentications}" varStatus="loopStatus" begin="0"
+                           end="${fn:length(assertion.chainedAuthentications)-2}" step="1">
+                    <cas:proxy>${fn:escapeXml(proxy.principal.id)}</cas:proxy>
+                </c:forEach>
+            </cas:proxies>
+        </c:if>
+
+        <c:if test="${fn:length(assertion.primaryAuthentication.principal.attributes) > 0}">
+            <cas:attributes>
+                <c:forEach var="attr"
+                           items="${assertion.primaryAuthentication.principal.attributes}"
+                           varStatus="loopStatus" begin="0"
+                           end="${fn:length(assertion.primaryAuthentication.principal.attributes)}"
+                           step="1">
+                   	<%-- ${attr.value['class'].simpleName} fails for List: use scriptlet instead --%>
+                   	<%
+                   	    Entry entry = (Entry) pageContext.getAttribute("attr");
+                   	    Object value = entry.getValue();
+                   	    pageContext.setAttribute("isAString", value instanceof String);
+                   	%>
+                    <c:choose>
+                        <%-- it's a String, output it once --%>
+                        <c:when test="${isAString}">
+                            <cas:${fn:escapeXml(attr.key)}>${fn:escapeXml(attr.value)}</cas:${fn:escapeXml(attr.key)}>
+                        </c:when>
+                        <%-- if attribute is multi-valued, list each value under the same attribute name --%>
+                        <c:otherwise>
+                            <c:forEach var="attrval" items="${attr.value}">
+                                <cas:${fn:escapeXml(attr.key)}>${fn:escapeXml(attrval)}</cas:${fn:escapeXml(attr.key)}>
+                            </c:forEach>
+                        </c:otherwise>
+                    </c:choose>
+                </c:forEach>
+            </cas:attributes>
+        </c:if>
+
+    </cas:authenticationSuccess>
+</cas:serviceResponse>

+ 37 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/casPostResponseView.jsp

@@ -0,0 +1,37 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<%@ page language="java"  session="false"%>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<html>
+ <body onload="document.acsForm.submit();">
+   <form name="acsForm" action="<c:out value="${originalUrl}" escapeXml="true" />" method="post">
+     <div style="display: none">
+       <c:forEach items="${parameters}" var="entry">
+         <textarea rows=10 cols=80 name="${entry.key}"><c:out value="${entry.value}" escapeXml="true" /></textarea>
+       </c:forEach>
+     </div>
+     <noscript>
+       <p>You are being redirected to <c:out value="${originalUrl}" escapeXml="true" />. Please click &quot;Continue&quot; to continue your login.</p>
+       <p><input type="submit" value="Continue" /></p>
+     </noscript>
+   </form>
+ </body>
+</html>

+ 25 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/clearPass/clearPassFailure.jsp

@@ -0,0 +1,25 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<%@ page session="false" contentType="application/xml; charset=UTF-8" %>
+<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
+<cas:clearPassResponse xmlns:cas='http://www.yale.edu/tp/cas'>
+	<cas:clearPassFailure>${fn:escapeXml(description)}</cas:clearPassFailure>
+</cas:clearPassResponse>

+ 28 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/clearPass/clearPassSuccess.jsp

@@ -0,0 +1,28 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<%@ page session="false" contentType="application/xml; charset=UTF-8" %>
+<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
+<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
+<cas:clearPassResponse xmlns:cas='http://www.yale.edu/tp/cas'>
+	<cas:clearPassSuccess>
+		<cas:credentials>${fn:escapeXml(credentials)}</cas:credentials>
+	</cas:clearPassSuccess>
+</cas:clearPassResponse>

+ 32 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/oauth/confirm.jsp

@@ -0,0 +1,32 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<jsp:directive.include file="../../default/ui/includes/top.jsp" />
+		<div id="msg" class="question">
+			<h2><spring:message code="screen.oauth.confirm.header" /></h2>
+
+			<p>
+			   <spring:message code="screen.oauth.confirm.message" arguments="${serviceName}" />
+			</p>
+			<p>
+				<a id="allow" name="allow" href="${callbackUrl}"><spring:message code="screen.oauth.confirm.allow" /></a>
+			</p>
+		</div>
+<jsp:directive.include file="../../default/ui/includes/bottom.jsp" />

+ 21 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/openid/casOpenIdAssociationFailureView.jsp

@@ -0,0 +1,21 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<%= "openid.mode:cancel\n" %>

+ 30 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/openid/casOpenIdAssociationSuccessView.jsp

@@ -0,0 +1,30 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<%@ page import="java.util.Set, java.util.Map, java.util.Iterator" %>
+<%
+    Map parameters = (Map)request.getAttribute("parameters");
+    Iterator iterator = parameters.keySet().iterator();
+    while (iterator.hasNext()) {
+        String key = (String)iterator.next();
+        String parameter = (String)parameters.get(key);
+        out.print(key+":"+parameter+"\n");
+    }
+%>

+ 21 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/openid/casOpenIdServiceFailureView.jsp

@@ -0,0 +1,21 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<%= "openid.mode:id_res\nis_valid:false\n" %>

+ 21 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/openid/casOpenIdServiceSuccessView.jsp

@@ -0,0 +1,21 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<%= "openid.mode:id_res\nis_valid:true\n" %>

+ 25 - 0
sso/trunk/src/main/webapp/WEB-INF/view/jsp/protocol/openid/user.jsp

@@ -0,0 +1,25 @@
+<%--
+
+    Licensed to Jasig under one or more contributor license
+    agreements. See the NOTICE file distributed with this work
+    for additional information regarding copyright ownership.
+    Jasig licenses this file to you under the Apache License,
+    Version 2.0 (the "License"); you may not use this file
+    except in compliance with the License.  You may obtain a
+    copy of the License at the following location:
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+--%>
+<html>
+	<head>
+		<link rel="openid.server" href="${openid_server}" />
+	</head>
+</html>

+ 193 - 2
sso/trunk/src/main/webapp/WEB-INF/web.xml

@@ -3,6 +3,197 @@
 	xmlns="http://java.sun.com/xml/ns/javaee"
 	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
 	version="3.0">
+	
+	<display-name>Central Authentication System (CAS) ${project.version}</display-name>
+
+  <context-param>
+    <param-name>contextConfigLocation</param-name>
+    <param-value>
+      /WEB-INF/spring-configuration/*.xml
+      /WEB-INF/deployerConfigContext.xml
+    </param-value>
+  </context-param>
+  <filter>
+    <filter-name>CAS Client Info Logging Filter</filter-name>
+    <filter-class>com.github.inspektr.common.web.ClientInfoThreadLocalFilter</filter-class>
+  </filter>
+ <filter-mapping>
+    <filter-name>CAS Client Info Logging Filter</filter-name>
+    <url-pattern>/*</url-pattern>
+  </filter-mapping> 
+  
+  	<filter>
+		<filter-name>loginfilter</filter-name>
+		<filter-class>com.xt.sso.common.ManagerLoginFilter</filter-class>
+		<init-param>
+			<param-name>redirectURL</param-name>
+			<param-value>/login.html,/user/virtualDrive.html</param-value>
+		</init-param>
+		<init-param>
+			<param-name>patternURL</param-name>
+			<param-value></param-value>
+		</init-param>		
+		
+	</filter>
+	
+ <filter-mapping>
+    <filter-name>loginfilter</filter-name>
+    <url-pattern>*.html</url-pattern>
+  </filter-mapping> 
+	
+  <listener>
+    <listener-class>
+      org.jasig.cas.web.init.SafeContextLoaderListener
+    </listener-class>
+  </listener>
+	
+	
+  <!-- <filter>
+    <filter-name>springSecurityFilterChain</filter-name>
+    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
+  </filter>
+  <filter-mapping>
+    <filter-name>springSecurityFilterChain</filter-name>
+    <url-pattern>/status</url-pattern>
+  </filter-mapping>
+  <filter-mapping>
+    <filter-name>springSecurityFilterChain</filter-name>
+    <url-pattern>/statistics</url-pattern>
+  </filter-mapping> 
+  
+  <servlet>  
+	    <servlet-name>CXFService</servlet-name>  
+	    <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>  
+	    <load-on-startup>1</load-on-startup>  
+	</servlet>  
+	<servlet-mapping>  
+	    <servlet-name>CXFService</servlet-name>  
+	    <url-pattern>/service/*</url-pattern>  
+	</servlet-mapping>
+	
+	<servlet>
+    <servlet-name>cas</servlet-name>
+    <servlet-class>
+      org.jasig.cas.web.init.SafeDispatcherServlet
+    </servlet-class>
+    <init-param>
+      <param-name>publishContext</param-name>
+      <param-value>false</param-value>
+    </init-param>
+	<init-param>
+		<param-name>encoding</param-name>
+		<param-value>UTF-8</param-value>
+	</init-param>
+    <load-on-startup>1</load-on-startup>
+  </servlet>
+  
+  <servlet-mapping>
+    <servlet-name>cas</servlet-name>
+    <url-pattern>/login</url-pattern>
+  </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>cas</servlet-name>
+    <url-pattern>/logout</url-pattern>
+  </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>cas</servlet-name>
+    <url-pattern>/validate</url-pattern>
+  </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>cas</servlet-name>
+    <url-pattern>/serviceValidate</url-pattern>
+  </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>cas</servlet-name>
+    <url-pattern>/samlValidate</url-pattern>
+  </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>cas</servlet-name>
+    <url-pattern>/proxy</url-pattern>
+  </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>cas</servlet-name>
+    <url-pattern>/proxyValidate</url-pattern>
+  </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>cas</servlet-name>
+    <url-pattern>/CentralAuthenticationService</url-pattern>
+  </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>cas</servlet-name>
+    <url-pattern>/services/add.html</url-pattern>
+  </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>cas</servlet-name>
+    <url-pattern>/services/viewStatistics.html</url-pattern>
+  </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>cas</servlet-name>
+    <url-pattern>/services/logout.html</url-pattern>
+  </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>cas</servlet-name>
+    <url-pattern>/services/loggedOut.html</url-pattern>
+  </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>cas</servlet-name>
+    <url-pattern>/services/manage.html</url-pattern>
+  </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>cas</servlet-name>
+    <url-pattern>/services/edit.html</url-pattern>
+  </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>cas</servlet-name>
+    <url-pattern>/openid/*</url-pattern>
+  </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>cas</servlet-name>
+    <url-pattern>/services/deleteRegisteredService.html</url-pattern>
+  </servlet-mapping>
+  
+  <servlet-mapping>
+	<servlet-name>cas</servlet-name>
+	<url-pattern>/services/updateRegisteredServiceEvaluationOrder.html</url-pattern>
+  </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>cas</servlet-name>
+    <url-pattern>/status</url-pattern>
+  </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>cas</servlet-name>
+    <url-pattern>/authorizationFailure.html</url-pattern>
+  </servlet-mapping>
+
+  <servlet-mapping>
+    <servlet-name>cas</servlet-name>
+    <url-pattern>/403.html</url-pattern>
+  </servlet-mapping>
+  -->
+	
+	
+	
+	
+	
+	
+	
 	<context-param>
 		<param-name>contextConfigLocation</param-name>
 		<param-value>
@@ -25,9 +216,9 @@
 		<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
 	</listener>
 	<!--Spring的ApplicationContext 载入 -->
-	<listener>
+	<!-- <listener>
 		<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
-	</listener>
+	</listener> -->
 	<!-- To allow session-scoped beans in Spring 【SystemAuthenticationListener】 -->
 	<listener>
 		<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>