removed cruft related to KAAJEE, stubbed in spring-security/VistALink authentication implementation

This commit is contained in:
sblaz 2011-09-13 07:02:13 +00:00
parent e5256f8fbf
commit 33133286df
35 changed files with 466 additions and 1637 deletions

View File

@ -1,4 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>EDIS Tracking Server Help</display-name>
</web-app>

View File

@ -254,6 +254,7 @@
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.5.1</version>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
@ -277,10 +278,11 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<!-- versions of dependencies -->
<servlet.version>2.5</servlet.version>
<servlet.version>2.3</servlet.version>
<spring.version>2.0.8</spring.version>
<spring.security.version>2.0.3</spring.security.version>
<slf4j.version>1.5.2</slf4j.version>
<spring.security.version>2.0.7.RELEASE</spring.security.version>
<slf4j.version>1.6.2</slf4j.version>
<log4j.version>1.2.14</log4j.version>
<easymock.version>2.4</easymock.version>
<flex.version>3.6.0.16995</flex.version>

View File

@ -57,14 +57,6 @@
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>src/main/webapp/WEB-INF</directory>
<includes>
<include>weblogic.xml</include>
</includes>
<filtering>true</filtering>
<targetPath>WEB-INF</targetPath>
</resource>
<resource>
<directory>${edis.tracking.build.swf.directory}</directory>
<targetPath>/</targetPath>
@ -124,87 +116,10 @@
<excludeTransitive>true</excludeTransitive>
</configuration>
</execution>
<!-- <execution>
<id>include-backwards-compatible-client-versions</id>
<phase>generate-resources</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>${project.groupId}</groupId>
<artifactId>edis-tracking-ui-bigboard</artifactId>
<version>1.0-T28</version>
<type>swf</type>
</artifactItem>
</artifactItems>
<outputDirectory>${edis.tracking.build.swf.directory}</outputDirectory>
<overWriteSnapshots>true</overWriteSnapshots>
</configuration>
</execution> -->
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>dev</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resource>
<directory>src/main/webapp-dev/WEB-INF</directory>
<includes>
<include>web.xml</include>
</includes>
<targetPath>WEB-INF</targetPath>
</resource>
<resource>
<directory>src/main/webapp/WEB-INF</directory>
<excludes>
<exclude>web.xml</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/webapp-dev</directory>
<includes>
<include>BigBoard.jsp</include>
</includes>
</resource>
<resource>
<directory>src/main/webapp</directory>
<excludes>
<exclude>BigBoard.jsp</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/webapp/WEB-INF</directory>
<includes>
<include>weblogic.xml</include>
</includes>
<filtering>true</filtering>
<targetPath>WEB-INF</targetPath>
</resource>
<resource>
<directory>${edis.tracking.build.swf.directory}</directory>
<targetPath>/</targetPath>
<filtering>false</filtering>
<includes>
<include>*.swf</include>
</includes>
</resource>
</webResources>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<properties>
<edis.tracking.build.swf.directory>${project.build.directory}/swf</edis.tracking.build.swf.directory>
</properties>

View File

@ -1,90 +0,0 @@
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd" >
<web-app>
<display-name>Emergency Department Tracking Board Server Proxy Application</display-name>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>strings</param-value>
</context-param>
<!-- Fallback locale if no bundles found for browser's preferred locale -->
<!-- Force a single locale using param-name 'javax.servlet.jsp.jstl.fmt.locale' -->
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.fallbackLocale</param-name>
<param-value>en</param-value>
</context-param>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:/applicationContext-dao.xml
</param-value>
</context-param>
<filter>
<filter-name>noCacheFilter</filter-name>
<filter-class>gov.va.med.edp.web.servlet.filter.ResponseHeaderFilter</filter-class>
<init-param>
<param-name>Cache-Control</param-name>
<param-value>cache,must-revalidate</param-value>
</init-param>
<init-param>
<param-name>Pragma</param-name>
<param-value>public</param-value>
</init-param>
</filter>
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<filter-mapping>
<filter-name>noCacheFilter</filter-name>
<url-pattern>*.swf</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>noCacheFilter</filter-name>
<url-pattern>/bigboard.html</url-pattern>
</filter-mapping>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>/bigboard.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.xml</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.csv</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>5</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>/bigboard.html</welcome-file>
</welcome-file-list>
<error-page>
<error-code>500</error-code>
<location>/error500.jsp</location>
</error-page>
</web-app>

View File

@ -1,149 +0,0 @@
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %><%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />
<title><fmt:message key="app.name"/></title>
<script src="AC_OETags.js" language="javascript"></script>
<style>
html, body {
height: 100%;
margin: 0;
padding: 0;
}
body {
overflow:hidden;
}
</style>
<script language="JavaScript" type="text/javascript">
<!--
// -----------------------------------------------------------------------------
// Globals
// Major version of Flash required
var requiredMajorVersion = 9;
// Minor version of Flash required
var requiredMinorVersion = 0;
// Minor version of Flash required
var requiredRevision = 28;
// -----------------------------------------------------------------------------
// -->
</script>
<!-- BEGIN call Flex function on browser close -->
<script language="JavaScript" type="text/javascript">
<!--
function shutdownHook()
{
var fxControl = document.BigBoard || window.BigBoard;
var warning = fxControl.getUnsavedDataWarning();
if (warning != '')
return warning;
else
return;
}
window.onbeforeunload = shutdownHook;
-->
</script>
<!-- END call Flex function on browser close -->
</head>
<body scroll="no">
<script language="JavaScript" type="text/javascript">
<!--
// Version check for the Flash Player that has the ability to start Player Product Install (6.0r65)
var hasProductInstall = DetectFlashVer(6, 0, 65);
// Version check based upon the values defined in globals
var hasRequestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
// Check to see if a player with Flash Product Install is available and the version does not meet the requirements for playback
if ( hasProductInstall && !hasRequestedVersion ) {
// MMdoctitle is the stored document.title value used by the installation process to close the window that started the process
// This is necessary in order to close browser windows that are still utilizing the older version of the player after installation has completed
// DO NOT MODIFY THE FOLLOWING FOUR LINES
// Location visited after installation is complete if installation is required
var MMPlayerType = (isIE == true) ? "ActiveX" : "PlugIn";
var MMredirectURL = window.location;
document.title = document.title.slice(0, 47) + " - Flash Player Installation";
var MMdoctitle = document.title;
AC_FL_RunContent(
"src", "playerProductInstall",
"FlashVars", "MMredirectURL="+MMredirectURL+'&MMplayerType='+MMPlayerType+'&MMdoctitle='+MMdoctitle+"",
"width", "100%",
"height", "100%",
"align", "middle",
"id", "<c:out value="${clientArtifactId}"/>",
"quality", "high",
"bgcolor", "#869ca7",
"allowFullScreen", "true",
"name", "<c:out value="${clientArtifactId}"/>",
"allowScriptAccess","sameDomain",
"type", "application/x-shockwave-flash",
"pluginspage", "http://www.adobe.com/go/getflashplayer"
);
} else if (hasRequestedVersion) {
// if we've detected an acceptable version
// embed the Flash Content SWF when all tests are passed
// Cache Server Page namespace should be set here (don't forget the ampersand)
//var edpVars = "cspNmsp=CPM&cspDemo=500^10vehu^vehu10&";
//var edpVars = "cspServ=vhaislcfgm2.vha.med.va.gov/csp/CPM&cspToken=20012^662&";
//var edpVars = "vljServ=10.5.17.153:7001&";
//var edpVars = "vljServ=10.5.17.225:7001&";
//var edpVars = "vljServ=localhost:7001&";
//SEE LINE BELOW TO LAUNCH BIG BOARD FROM FLEX BUILDER AND PASSING IN A SITE ID
//var edpVars = "vljServ=vhaislbll2.vha.med.va.gov:7141&siteId=442&";
var edpVars = "contextRoot=<c:out value="${pageContext.request.contextPath}"/>&board=<c:out value="${param.board}"/>&siteId=<c:out value="${param.siteId}"/>&area=<c:out value="${param.area}"/>&helpContextRoot=<fmt:message key="help.contextRoot"/>";
AC_FL_RunContent(
"src", "<c:out value="${clientFinalName}"/>",
"width", "100%",
"height", "100%",
"align", "middle",
"id", "<c:out value="${clientArtifactId}"/>",
"quality", "high",
"bgcolor", "#869ca7",
"allowFullScreen", "true",
"name", "<c:out value="${clientArtifactId}"/>",
"flashvars", edpVars,
"allowScriptAccess","sameDomain",
"type", "application/x-shockwave-flash",
"pluginspage", "http://www.adobe.com/go/getflashplayer"
);
} else { // flash is too old or we can't detect the plugin
var alternateContent = 'Alternate HTML content should be placed here. '
+ 'This content requires the Adobe Flash Player. '
+ '<a href=http://www.adobe.com/go/getflash/>Get Flash</a>';
document.write(alternateContent); // insert non-flash content
}
// -->
</script>
<noscript>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
id="<c:out value="${clientArtifactId}"/>" width="100%" height="100%"
codebase="http://fpdownload.macromedia.com/get/flashplayer/current/swflash.cab">
<param name="movie" value="<c:out value="${clientFinalName}"/>.swf" />
<param name="quality" value="high" />
<param name="allowFullScreen" value="true" />
<param name="bgcolor" value="#869ca7" />
<param name="allowScriptAccess" value="sameDomain" />
<embed src="<c:out value="${clientFinalName}"/>.swf" quality="high" allowFullScreen="true" bgcolor="#869ca7"
width="100%" height="100%" name="<c:out value="${clientArtifactId}"/>" align="middle"
play="true"
loop="false"
quality="high"
allowScriptAccess="sameDomain"
type="application/x-shockwave-flash"
pluginspage="http://www.adobe.com/go/getflashplayer">
</embed>
</object>
</noscript>
</body>
</html>

View File

@ -97,30 +97,30 @@
<location>/error500.jsp</location>
</error-page>
<security-constraint>
<web-resource-collection>
<web-resource-name>ED Tracking Board Flex Client</web-resource-name>
<url-pattern>*.swf</url-pattern>
<url-pattern>*.html</url-pattern>
<url-pattern>*.xml</url-pattern>
<url-pattern>*.jsp</url-pattern>
<url-pattern>*.csv</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>SSL_AUTHENTICATED_USERS</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<!--<security-constraint>-->
<!--<web-resource-collection>-->
<!--<web-resource-name>ED Tracking Board Flex Client</web-resource-name>-->
<!--<url-pattern>*.swf</url-pattern>-->
<!--<url-pattern>*.html</url-pattern>-->
<!--<url-pattern>*.xml</url-pattern>-->
<!--<url-pattern>*.jsp</url-pattern>-->
<!--<url-pattern>*.csv</url-pattern>-->
<!--<http-method>GET</http-method>-->
<!--<http-method>POST</http-method>-->
<!--</web-resource-collection>-->
<!--<auth-constraint>-->
<!--<role-name>SSL_AUTHENTICATED_USERS</role-name>-->
<!--</auth-constraint>-->
<!--<user-data-constraint>-->
<!--<transport-guarantee>NONE</transport-guarantee>-->
<!--</user-data-constraint>-->
<!--</security-constraint>-->
<login-config>
<auth-method>CLIENT-CERT</auth-method>
</login-config>
<!--<login-config>-->
<!--<auth-method>CLIENT-CERT</auth-method>-->
<!--</login-config>-->
<security-role>
<role-name>SSL_AUTHENTICATED_USERS</role-name>
</security-role>
<!--<security-role>-->
<!--<role-name>SSL_AUTHENTICATED_USERS</role-name>-->
<!--</security-role>-->
</web-app>

View File

@ -1,22 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
<session-descriptor>
<session-param>
<param-name>CookieName</param-name>
<param-value>edisboardJSESSIONID</param-value>
</session-param>
<session-param>
<param-name>PersistentStoreType</param-name>
<param-value>replicated_if_clustered</param-value>
</session-param>
</session-descriptor>
<container-descriptor>
<session-monitoring-enabled>true</session-monitoring-enabled>
</container-descriptor>
<context-root>${edis.tracking.boardContextRoot}</context-root>
<security-role-assignment>
<role-name>SSL_AUTHENTICATED_USERS</role-name>
<principal-name>SSL_AUTHENTICATED_USERS</principal-name>
</security-role-assignment>
</weblogic-web-app>

View File

@ -34,6 +34,23 @@
<artifactId>edis-tracking-server-core</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>0.9.29</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>javax.resource</groupId>
<artifactId>connector</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>${servlet.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
@ -63,17 +80,9 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<configuration>
<webResources>
<resource>
<directory>src/main/webapp/WEB-INF</directory>
<includes>
<include>kaajeeConfig.xml</include>
<include>weblogic.xml</include>
</includes>
<filtering>true</filtering>
<targetPath>WEB-INF</targetPath>
</resource>
<resource>
<directory>${edis.tracking.build.swf.directory}</directory>
<targetPath>/</targetPath>
@ -87,6 +96,7 @@
</plugin>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<phase>process-resources</phase>
@ -154,51 +164,25 @@
</execution> -->
</executions>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>dev</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.0.1.v20110908</version>
<configuration>
<webResources>
<resource>
<directory>src/main/webapp-dev/WEB-INF</directory>
<includes>
<include>kaajeeConfig.xml</include>
</includes>
<targetPath>WEB-INF</targetPath>
</resource>
<resource>
<directory>src/main/webapp/WEB-INF</directory>
<includes>
<include>weblogic.xml</include>
</includes>
<excludes>
<exclude>kaajeeConfig.xml</exclude>
</excludes>
<filtering>true</filtering>
<targetPath>WEB-INF</targetPath>
</resource>
<resource>
<directory>${edis.tracking.build.swf.directory}</directory>
<targetPath>/</targetPath>
<filtering>false</filtering>
<includes>
<include>*.swf</include>
</includes>
</resource>
</webResources>
<scanIntervalSeconds>4</scanIntervalSeconds>
<systemProperties>
<systemProperty>
<name>logback.configurationFile</name>
<value>${basedir}/jetty/logback.xml</value>
</systemProperty>
</systemProperties>
<webAppConfig>
<contextPath>${edis.tracking.trackingContextRoot}</contextPath>
</webAppConfig>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
<properties>
<edis.tracking.build.swf.directory>${project.build.directory}/swf</edis.tracking.build.swf.directory>
</properties>

View File

@ -0,0 +1,20 @@
<?xml version="1.0"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</Pattern>
</layout>
</appender>
<logger name="org.springframework.web" level="INFO"/>
<logger name="org.springframework.web.client" level="DEBUG"/>
<logger name="org.apache.http" level="INFO"/>
<logger name="org.apache.http.wire" level="ERROR"/>
<logger name="gov.va.med.edp" level="WARN"/>
<root level="WARN">
<appender-ref ref="STDOUT"/>
</root>
</configuration>

View File

@ -0,0 +1,44 @@
package gov.va.med.edp.web.controller;
import gov.va.med.edp.vistalink.locator.VistaLinkConnectorConfig;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.util.Assert;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Set;
public class LoginController extends AbstractController implements InitializingBean {
public static final String DEFAULT_VIEW_NAME = "login";
private String viewName = DEFAULT_VIEW_NAME;
private Set/*<VistaLinkConnectorConfig>*/ vistaAccounts;
public void afterPropertiesSet() throws Exception {
Assert.notNull(viewName, "viewName must not be null");
}
protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws Exception {
return new ModelAndView(getViewName(), "vistaAccounts", vistaAccounts);
}
public String getViewName() {
return viewName;
}
public void setViewName(String viewName) {
this.viewName = viewName;
}
public Set/*<VistaLinkConnectorConfig>*/ getVistaAccounts() {
return vistaAccounts;
}
public void setVistaAccounts(Set/*<VistaLinkConnectorConfig>*/ vistaAccounts) {
this.vistaAccounts = vistaAccounts;
}
}

View File

@ -1,9 +0,0 @@
# Generated by genAppProperties.xsl at 2007-09-06 02:48:11
#
# Application=med.term.access
# Environment=readonly
# Database=hsqldb
#
gov.va.med.term.access.util.ImplementorRegistry/gov.va.med.term.access.TableManager$Factory=gov.va.med.term.access.readonly.factory.db.TableManagerFactory
gov.va.med.term.access.util.ImplementorRegistry/gov.va.med.term.access.*$Factory=gov.va.med.term.access.readonly.factory.cache.*Factory
gov.va.med.term.access.util.ImplementorRegistry/gov.va.med.term.access.readonly.Readonly*$Factory=gov.va.med.term.access.readonly.factory.db.*Factory

View File

@ -1,9 +1,18 @@
app.name=Emergency Department Integration Software - Tracking Application
app.version=${project.version}
app.buildtime=BUILD_TIME_PLACEHOLDER
copyright.year=2008
copyright.organization.url=http://www.va.gov
copyright.organization=Department of Veterans Affairs
copyright.year=2011
copyright.organization.url=http://www.worldvista.org
copyright.organization=WorldVistA
help.contextRoot=${edis.tracking.helpContextRoot}
logged.out=You have been logged out.
login.again=Log in again.
login.title=Emergency Department Integration Software
label.access=Access Code
label.verify=Verify Code
label.facility=Facility
button.login=Sign In
button.logout=Sign out
errors.verify.mismatch=Access/Verify code pair mismatch

View File

@ -1,235 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<kaajee-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="kaajeeConfig.xsd">
<!-- host application name, used for login page display and logging -->
<host-application-name>EDIS Tracking Board</host-application-name>
<!-- put each station number for KAAJEE login here -->
<login-station-numbers>
<station-number>402</station-number>
<station-number>405</station-number>
<station-number>423</station-number>
<station-number>433</station-number>
<station-number>436</station-number>
<station-number>437</station-number>
<station-number>438</station-number>
<station-number>442</station-number>
<station-number>447</station-number>
<station-number>454</station-number>
<station-number>459</station-number>
<station-number>460</station-number> <station-number>463</station-number>
<station-number>500</station-number>
<station-number>501</station-number>
<station-number>502</station-number>
<station-number>503</station-number>
<station-number>504</station-number>
<station-number>506</station-number>
<station-number>508</station-number>
<station-number>509</station-number>
<station-number>509A0</station-number>
<station-number>512</station-number>
<station-number>512A5</station-number>
<station-number>515</station-number>
<station-number>516</station-number>
<station-number>517</station-number>
<station-number>518</station-number>
<station-number>519</station-number>
<station-number>520</station-number>
<station-number>520A0</station-number>
<station-number>521</station-number>
<station-number>523</station-number>
<station-number>523A4</station-number>
<station-number>523A5</station-number>
<station-number>524</station-number>
<station-number>526</station-number>
<station-number>528</station-number>
<station-number>528A4</station-number>
<station-number>528A5</station-number>
<station-number>528A6</station-number>
<station-number>528A7</station-number>
<station-number>528A8</station-number>
<station-number>529</station-number>
<station-number>531</station-number>
<station-number>534</station-number>
<station-number>537</station-number>
<station-number>538</station-number>
<station-number>539</station-number>
<station-number>540</station-number>
<station-number>541</station-number>
<station-number>542</station-number>
<station-number>544</station-number>
<station-number>546</station-number>
<station-number>548</station-number>
<station-number>549</station-number>
<station-number>549A4</station-number>
<station-number>550</station-number>
<station-number>552</station-number>
<station-number>553</station-number>
<station-number>554</station-number>
<station-number>556</station-number>
<station-number>557</station-number>
<station-number>558</station-number>
<station-number>561</station-number>
<station-number>561A4</station-number>
<station-number>562</station-number>
<station-number>564</station-number>
<station-number>565</station-number>
<station-number>568</station-number>
<station-number>568A4</station-number>
<station-number>570</station-number>
<station-number>573</station-number>
<station-number>573A4</station-number>
<station-number>575</station-number>
<station-number>578</station-number>
<station-number>580</station-number>
<station-number>581</station-number>
<station-number>583</station-number>
<station-number>585</station-number>
<station-number>586</station-number>
<station-number>589</station-number>
<station-number>589A4</station-number>
<station-number>589A5</station-number>
<station-number>589A6</station-number>
<station-number>589A7</station-number>
<station-number>590</station-number>
<station-number>593</station-number>
<station-number>595</station-number>
<station-number>596</station-number>
<station-number>596A4</station-number>
<station-number>598</station-number>
<station-number>600</station-number>
<station-number>603</station-number>
<station-number>605</station-number>
<station-number>607</station-number>
<station-number>608</station-number>
<station-number>610</station-number>
<station-number>610A4</station-number>
<station-number>612</station-number>
<station-number>612A4</station-number>
<station-number>613</station-number>
<station-number>614</station-number>
<station-number>618</station-number>
<station-number>619</station-number>
<station-number>619A4</station-number>
<station-number>620</station-number>
<station-number>620A4</station-number>
<station-number>621</station-number>
<station-number>623</station-number>
<station-number>626</station-number>
<station-number>626A4</station-number>
<station-number>629</station-number>
<station-number>630</station-number>
<station-number>630A4</station-number>
<station-number>630A5</station-number>
<station-number>631</station-number>
<station-number>632</station-number>
<station-number>635</station-number>
<station-number>636</station-number>
<station-number>636A4</station-number>
<station-number>636A6</station-number>
<station-number>636A7</station-number>
<station-number>636A8</station-number>
<station-number>637</station-number>
<station-number>640</station-number>
<station-number>640A4</station-number>
<station-number>642</station-number>
<station-number>644</station-number>
<station-number>646</station-number>
<station-number>646A4</station-number>
<station-number>646A5</station-number>
<station-number>648</station-number>
<station-number>648A4</station-number>
<station-number>649</station-number>
<station-number>650</station-number>
<station-number>652</station-number>
<station-number>653</station-number>
<station-number>654</station-number>
<station-number>655</station-number>
<station-number>656</station-number>
<station-number>657</station-number>
<station-number>657A0</station-number>
<station-number>657A4</station-number>
<station-number>657A5</station-number>
<station-number>658</station-number>
<station-number>659</station-number>
<station-number>660</station-number>
<station-number>662</station-number>
<station-number>663</station-number>
<station-number>663A4</station-number>
<station-number>664</station-number>
<station-number>666</station-number>
<station-number>667</station-number>
<station-number>668</station-number>
<station-number>671</station-number>
<station-number>671A4</station-number>
<station-number>672</station-number>
<station-number>673</station-number>
<station-number>674</station-number>
<station-number>674A4</station-number>
<station-number>674A5</station-number>
<station-number>675</station-number>
<station-number>676</station-number>
<station-number>678</station-number>
<station-number>679</station-number>
<station-number>687</station-number>
<station-number>688</station-number>
<station-number>689</station-number>
<station-number>689A4</station-number>
<station-number>691</station-number>
<station-number>691A4</station-number>
<station-number>692</station-number>
<station-number>693</station-number>
<station-number>695</station-number>
<station-number>757</station-number>
<station-number>982</station-number>
</login-station-numbers>
<!-- defined application context root Name -->
<context-root-name>${edis.tracking.trackingContextRoot}</context-root-name>
<!-- put the system announcement here. Use ~ for a line break, or ~ ~ for a
paragraph break. -->
<system-announcement>
U.S. Government Computer System
~ ~
U. S. government systems are intended to be used by authorized government network users for viewing and
retrieving information only, except as otherwise explicitly authorized for official business and limited
personal use in accordance with policy. Information from these systems resides on and transmits through computer
systems and networks funded by the government. All access or use constitutes understanding and acceptance that
there is no reasonable expectation of privacy in the use of Government networks or systems.
~ ~
The data and documents on this system include Federal records that contain sensitive information protected by
various Federal statutes, including the Privacy Act, 5 U.S.C. Section 552a, and veterans' records
confidentiality statutes such as 38 U.S.C. Sections 5701 and 7332. Access to the data and records is on a
need-to-know basis only.
~ ~
All access or use of this system constitutes user understanding and acceptance of these terms and constitutes
unconditional consent to review and action including (but not limited to) monitoring, recording, copying,
auditing, inspecting, investigating, restricting access, blocking, tracking, disclosing to authorized personnel,
or any other authorized actions by all authorized government and law enforcement personnel.
~ ~
Unauthorized user attempts or acts to (1) access, upload, change, or delete information on this system, (2)
modify this system, (3) deny access to this system, (4) accrue resources for unauthorized use or (5) otherwise
misuse this system are strictly prohibited. Such attempts or acts are subject to action that may result in
criminal, civil, or administrative penalties.
</system-announcement>
<!-- set to true to return a user's "New Person" division multiple as part
of login -->
<user-new-person-divisions retrieve="true"/>
<!-- set to true to return all children divisions of the login division's
computing facility, as part of login -->
<computing-facility-divisions retrieve="true"/>
<cactus-insecure-mode enabled="false"/>
<!-- BEAWeblogic Server SSL listen port , used for login page to implement SSL -->
<!-- <ssl-listen-port-number>7002</ssl-listen-port-number> -->
</kaajee-config>

View File

@ -0,0 +1,77 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:security="http://www.springframework.org/schema/security"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-2.0.4.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd">
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:strings.properties"/>
</bean>
<security:http entry-point-ref="formAuthenticationEntryPoint" access-denied-page="/login.html?error=true">
<security:intercept-url pattern="/about.html" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<security:intercept-url pattern="/login.html*" access="IS_AUTHENTICATED_ANONYMOUSLY"/>
<security:intercept-url pattern="/logout.html*" filters="none"/>
<security:intercept-url pattern="/**/*.swf" access="ROLE_USER"/>
<security:intercept-url pattern="/**/*.xml" access="ROLE_USER"/>
<security:intercept-url pattern="/**/*.html" access="ROLE_USER"/>
<security:anonymous/>
</security:http>
<security:authentication-manager alias="authenticationManager"/>
<bean id="vistaAuthenticationProvider"
class="gov.va.med.edp.springframework.security.providers.vistalink.VistaAuthenticationProvider">
<security:custom-authentication-provider/>
<property name="userDetailsService" ref="vistaUserDetailsDao"/>
</bean>
<bean id="vistaUserDetailsDao"
class="gov.va.med.edp.springframework.security.userdetails.vistalink.VistaLinkUserDetailService">
<property name="applicationName" value="${app.name}"/>
<property name="connectionFactoryLocator" ref="vistaLinkConnectionFactoryLocator"/>
</bean>
<bean id="formAuthenticationProcessingFilter"
class="gov.va.med.edp.springframework.security.ui.vistalink.VistaAuthenticationProcessingFilter">
<security:custom-filter position="AUTHENTICATION_PROCESSING_FILTER"/>
<property name="authenticationManager" ref="authenticationManager"/>
<property name="defaultTargetUrl" value="/"/>
</bean>
<bean id="formAuthenticationEntryPoint"
class="org.springframework.security.ui.webapp.AuthenticationProcessingFilterEntryPoint">
<property name="loginFormUrl" value="/login.html"/>
</bean>
<bean id="logoutFilter" class="org.springframework.security.ui.logout.LogoutFilter">
<constructor-arg value="/"/>
<constructor-arg>
<list>
<bean class="gov.va.med.edp.springframework.security.ui.vistalink.VistaLogoutHandler">
<property name="userDetailsService" ref="vistaUserDetailsDao"/>
</bean>
<bean class="org.springframework.security.ui.logout.SecurityContextLogoutHandler"/>
</list>
</constructor-arg>
<property name="filterProcessesUrl" value="/logout.html"/>
</bean>
<bean id="vistaLinkConnectionFactoryLocator"
class="gov.va.med.edp.vistalink.locator.VistaLinkConnectorConfigConnectionFactoryLocator">
<property name="connectors" ref="vistaAccounts"/>
</bean>
<util:set id="vistaAccounts">
<bean class="gov.va.med.edp.vistalink.locator.VistaLinkConnectorConfig">
<property name="host" value="foo"/>
<property name="name" value="FOO"/>
<property name="primaryStation" value="500"/>
<property name="accessCode" value="foo"/>
<property name="verifyCode" value="bar"/>
</bean>
</util:set>
</beans>

View File

@ -0,0 +1,8 @@
<?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:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.0.xsd">
<import resource="data-access-config.xml"/>
<import resource="security-config.xml"/>
</beans>

View File

@ -18,7 +18,20 @@
<bean id="handlerMapping" class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/>
<bean id="viewResolver" class="org.springframework.web.servlet.view.XmlViewResolver"/>
<!-- view names in views.xml -->
<bean id="viewResolver" class="org.springframework.web.servlet.view.XmlViewResolver">
<property name="order" value="0"/>
</bean>
<!-- if not found in views.xml default to looking for a JSP -->
<bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="order" value="1"/>
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!-- controllers with bean name mappings -->
<bean name="/about.html" class="org.springframework.web.servlet.mvc.UrlFilenameViewController"/>
<bean name="/tracking.html" class="gov.va.med.edp.web.controller.ClientVersionSynchronizationController">
<property name="clientArtifactId" value="edis-tracking-ui-main"/>
@ -30,6 +43,10 @@
<property name="viewName" value="board"/>
</bean>
<bean name="/login.html" class="gov.va.med.edp.web.controller.LoginController">
<property name="vistaAccounts" ref="vistaAccounts"/>
</bean>
<bean name="/logout.html" class="gov.va.med.edp.web.controller.LogoutController"/>
<bean name="/tracking.xml" class="gov.va.med.edp.web.controller.TrackingController">

View File

@ -0,0 +1,93 @@
<%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=utf-8" %>
<%@ include file="/WEB-INF/jsp/taglibs.jsp" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title><fmt:message key="login.title"/></title>
<link rel="shortcut icon" href="<c:url value="/favicon.ico"/>" type="image/x-icon"/>
<style type="text/css">
body {
}
form {
width: 620px;
height: 374px;
margin: 0 auto;
margin-top: 10em;
}
table {
margin-top: 180px;
margin-left: 40px;
width: 100%;
}
label {
display: block;
text-align: right;
}
</style>
</head>
<body>
<form method="post" id="loginForm" action="<c:url value='j_spring_security_check'/>">
<table>
<c:if test="${param.error != null}">
<tr class="error">
<td colspan="2">
<fmt:message key="errors.verify.mismatch"/>
<c:out value="${requestScope.SPRING_SECURITY_LAST_EXCEPTION.message}"/>
</td>
</tr>
</c:if>
<tr>
<td>
<label for="j_stationNumber">
<fmt:message key="label.facility"/>
</label>
</td>
<td>
<select id="j_stationNumber" name="j_stationNumber" tabindex="3">
<c:forEach items="${vistaAccounts}" var="account">
<option value="<c:out value="${account.primaryStation}"/>"><c:out value="${account.name}"/>
(<c:out value="${account.primaryStation}"/>)
</option>
</c:forEach>
</select>
</td>
</tr>
<tr>
<td>
<label for="j_access">
<fmt:message key="label.access"/>
</label>
</td>
<td>
<input type="password" name="j_access" id="j_access" tabindex="1"/>
</td>
</tr>
<tr>
<td>
<label for="j_verify">
<fmt:message key="label.verify"/>
</label>
</td>
<td>
<input type="password" name="j_verify" id="j_verify" tabindex="2"/>
</td>
</tr>
<tr>
<td/>
<td>
<input type="submit" name="login" value="<fmt:message key='button.login'/>"
tabindex="4"/>
</td>
</tr>
</table>
</form>
</body>
</html>

View File

@ -0,0 +1 @@
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %><%@ taglib uri="http://java.sun.com/jstl/fmt" prefix="fmt" %><%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %><c:set var="ctx" value="${pageContext.request.contextPath}"/>

View File

@ -1,234 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<kaajee-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="kaajeeConfig.xsd">
<!-- host application name, used for login page display and logging -->
<host-application-name>EDIS Tracking Board</host-application-name>
<!-- put each station number for KAAJEE login here -->
<login-station-numbers>
<station-number>402</station-number>
<station-number>405</station-number>
<station-number>423</station-number>
<station-number>433</station-number>
<station-number>436</station-number>
<station-number>437</station-number>
<station-number>438</station-number>
<station-number>442</station-number>
<station-number>447</station-number>
<station-number>454</station-number>
<station-number>459</station-number>
<station-number>460</station-number> <station-number>463</station-number>
<station-number>501</station-number>
<station-number>502</station-number>
<station-number>503</station-number>
<station-number>504</station-number>
<station-number>506</station-number>
<station-number>508</station-number>
<station-number>509</station-number>
<station-number>509A0</station-number>
<station-number>512</station-number>
<station-number>512A5</station-number>
<station-number>515</station-number>
<station-number>516</station-number>
<station-number>517</station-number>
<station-number>518</station-number>
<station-number>519</station-number>
<station-number>520</station-number>
<station-number>520A0</station-number>
<station-number>521</station-number>
<station-number>523</station-number>
<station-number>523A4</station-number>
<station-number>523A5</station-number>
<station-number>524</station-number>
<station-number>526</station-number>
<station-number>528</station-number>
<station-number>528A4</station-number>
<station-number>528A5</station-number>
<station-number>528A6</station-number>
<station-number>528A7</station-number>
<station-number>528A8</station-number>
<station-number>529</station-number>
<station-number>531</station-number>
<station-number>534</station-number>
<station-number>537</station-number>
<station-number>538</station-number>
<station-number>539</station-number>
<station-number>540</station-number>
<station-number>541</station-number>
<station-number>542</station-number>
<station-number>544</station-number>
<station-number>546</station-number>
<station-number>548</station-number>
<station-number>549</station-number>
<station-number>549A4</station-number>
<station-number>550</station-number>
<station-number>552</station-number>
<station-number>553</station-number>
<station-number>554</station-number>
<station-number>556</station-number>
<station-number>557</station-number>
<station-number>558</station-number>
<station-number>561</station-number>
<station-number>561A4</station-number>
<station-number>562</station-number>
<station-number>564</station-number>
<station-number>565</station-number>
<station-number>568</station-number>
<station-number>568A4</station-number>
<station-number>570</station-number>
<station-number>573</station-number>
<station-number>573A4</station-number>
<station-number>575</station-number>
<station-number>578</station-number>
<station-number>580</station-number>
<station-number>581</station-number>
<station-number>583</station-number>
<station-number>585</station-number>
<station-number>586</station-number>
<station-number>589</station-number>
<station-number>589A4</station-number>
<station-number>589A5</station-number>
<station-number>589A6</station-number>
<station-number>589A7</station-number>
<station-number>590</station-number>
<station-number>593</station-number>
<station-number>595</station-number>
<station-number>596</station-number>
<station-number>596A4</station-number>
<station-number>598</station-number>
<station-number>600</station-number>
<station-number>603</station-number>
<station-number>605</station-number>
<station-number>607</station-number>
<station-number>608</station-number>
<station-number>610</station-number>
<station-number>610A4</station-number>
<station-number>612</station-number>
<station-number>612A4</station-number>
<station-number>613</station-number>
<station-number>614</station-number>
<station-number>618</station-number>
<station-number>619</station-number>
<station-number>619A4</station-number>
<station-number>620</station-number>
<station-number>620A4</station-number>
<station-number>621</station-number>
<station-number>623</station-number>
<station-number>626</station-number>
<station-number>626A4</station-number>
<station-number>629</station-number>
<station-number>630</station-number>
<station-number>630A4</station-number>
<station-number>630A5</station-number>
<station-number>631</station-number>
<station-number>632</station-number>
<station-number>635</station-number>
<station-number>636</station-number>
<station-number>636A4</station-number>
<station-number>636A6</station-number>
<station-number>636A7</station-number>
<station-number>636A8</station-number>
<station-number>637</station-number>
<station-number>640</station-number>
<station-number>640A4</station-number>
<station-number>642</station-number>
<station-number>644</station-number>
<station-number>646</station-number>
<station-number>646A4</station-number>
<station-number>646A5</station-number>
<station-number>648</station-number>
<station-number>648A4</station-number>
<station-number>649</station-number>
<station-number>650</station-number>
<station-number>652</station-number>
<station-number>653</station-number>
<station-number>654</station-number>
<station-number>655</station-number>
<station-number>656</station-number>
<station-number>657</station-number>
<station-number>657A0</station-number>
<station-number>657A4</station-number>
<station-number>657A5</station-number>
<station-number>658</station-number>
<station-number>659</station-number>
<station-number>660</station-number>
<station-number>662</station-number>
<station-number>663</station-number>
<station-number>663A4</station-number>
<station-number>664</station-number>
<station-number>666</station-number>
<station-number>667</station-number>
<station-number>668</station-number>
<station-number>671</station-number>
<station-number>671A4</station-number>
<station-number>672</station-number>
<station-number>673</station-number>
<station-number>674</station-number>
<station-number>674A4</station-number>
<station-number>674A5</station-number>
<station-number>675</station-number>
<station-number>676</station-number>
<station-number>678</station-number>
<station-number>679</station-number>
<station-number>687</station-number>
<station-number>688</station-number>
<station-number>689</station-number>
<station-number>689A4</station-number>
<station-number>691</station-number>
<station-number>691A4</station-number>
<station-number>692</station-number>
<station-number>693</station-number>
<station-number>695</station-number>
<station-number>757</station-number>
<station-number>982</station-number>
</login-station-numbers>
<!-- defined application context root Name -->
<context-root-name>${edis.tracking.trackingContextRoot}</context-root-name>
<!-- put the system announcement here. Use ~ for a line break, or ~ ~ for a
paragraph break. -->
<system-announcement>
U.S. Government Computer System
~ ~
U. S. government systems are intended to be used by authorized government network users for viewing and
retrieving information only, except as otherwise explicitly authorized for official business and limited
personal use in accordance with policy. Information from these systems resides on and transmits through computer
systems and networks funded by the government. All access or use constitutes understanding and acceptance that
there is no reasonable expectation of privacy in the use of Government networks or systems.
~ ~
The data and documents on this system include Federal records that contain sensitive information protected by
various Federal statutes, including the Privacy Act, 5 U.S.C. Section 552a, and veterans' records
confidentiality statutes such as 38 U.S.C. Sections 5701 and 7332. Access to the data and records is on a
need-to-know basis only.
~ ~
All access or use of this system constitutes user understanding and acceptance of these terms and constitutes
unconditional consent to review and action including (but not limited to) monitoring, recording, copying,
auditing, inspecting, investigating, restricting access, blocking, tracking, disclosing to authorized personnel,
or any other authorized actions by all authorized government and law enforcement personnel.
~ ~
Unauthorized user attempts or acts to (1) access, upload, change, or delete information on this system, (2)
modify this system, (3) deny access to this system, (4) accrue resources for unauthorized use or (5) otherwise
misuse this system are strictly prohibited. Such attempts or acts are subject to action that may result in
criminal, civil, or administrative penalties.
</system-announcement>
<!-- set to true to return a user's "New Person" division multiple as part
of login -->
<user-new-person-divisions retrieve="true"/>
<!-- set to true to return all children divisions of the login division's
computing facility, as part of login -->
<computing-facility-divisions retrieve="true"/>
<cactus-insecure-mode enabled="false"/>
<!-- BEAWeblogic Server SSL listen port , used for login page to implement SSL -->
<!-- <ssl-listen-port-number>7002</ssl-listen-port-number> -->
</kaajee-config>

View File

@ -1,42 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v5 rel. 3 U (http://www.xmlspy.com) by Kyle Clarke (Department of Veterans Affairs) -->
<!--W3C Schema generated by XMLSPY v5 rel. 3 U (http://www.xmlspy.com)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="computing-facility-divisions">
<xs:complexType>
<xs:attribute name="retrieve" type="xs:boolean" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="host-application-name" type="xs:string"/>
<xs:element name="kaajee-config">
<xs:complexType>
<xs:all>
<xs:element ref="host-application-name" minOccurs="0"/>
<xs:element ref="login-station-numbers"/>
<xs:element ref="context-root-name" minOccurs="0"/>
<xs:element ref="system-announcement" minOccurs="0"/>
<xs:element ref="user-new-person-divisions" minOccurs="0"/>
<xs:element ref="computing-facility-divisions" minOccurs="0"/>
<xs:element ref="cactus-insecure-mode" minOccurs="0"/>
</xs:all>
</xs:complexType>
</xs:element>
<xs:element name="login-station-numbers">
<xs:complexType>
<xs:sequence>
<xs:element ref="station-number" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="station-number" type="xs:string"/>
<xs:element name="system-announcement" type="xs:string"/>
<xs:element name="user-new-person-divisions">
<xs:complexType>
<xs:attribute name="retrieve" type="xs:boolean" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="cactus-insecure-mode"/>
<xs:element name="context-root-name"/>
</xs:schema>

View File

@ -26,6 +26,14 @@
<property name="url" value="/WEB-INF/jsp/vistaLinkPermissionDenied.jsp"/>
</bean>
<bean id="about" class="org.springframework.web.servlet.view.JstlView">
<property name="url" value="/WEB-INF/jsp/about.jsp"/>
</bean>
<bean id="login" class="org.springframework.web.servlet.view.JstlView">
<property name="url" value="/WEB-INF/jsp/login.jsp"/>
</bean>
<bean id="logout" class="org.springframework.web.servlet.view.JstlView">
<property name="url" value="/WEB-INF/jsp/logout.jsp"/>
</bean>

View File

@ -17,11 +17,14 @@
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:/applicationContext-dao.xml
</param-value>
<param-value>/WEB-INF/config/web-application-config.xml</param-value>
</context-param>
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
@ -44,50 +47,10 @@
</init-param>
</filter>
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>gov.va.med.authentication.kernel.KaajeeSessionAttributeListener</listener-class>
</listener>
<listener>
<listener-class>gov.va.med.authentication.kernel.KaajeeHttpSessionListener</listener-class>
</listener>
<listener>
<listener-class>gov.va.med.edp.web.servlet.listener.TimeOutIntegrationSessionAttributeListener</listener-class>
</listener>
<servlet>
<servlet-name>KaajeeInit</servlet-name>
<servlet-class>gov.va.med.authentication.kernel.InitKaajeeServlet</servlet-class>
<init-param>
<param-name>kaajee-config-file-location</param-name>
<param-value>/WEB-INF/kaajeeConfig.xml</param-value>
</init-param>
<load-on-startup>3</load-on-startup>
</servlet>
<servlet>
<servlet-name>LoginController</servlet-name>
<servlet-class>gov.va.med.authentication.kernel.LoginController</servlet-class>
<run-as>
<!-- In this example, weblogic is the boot user name (i.e., weblogic console user name) -->
<role-name>weblogic</role-name>
</run-as>
</servlet>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
@ -114,10 +77,27 @@
<url-pattern>/logout.html</url-pattern>
</filter-mapping>
<servlet-mapping>
<servlet-name>LoginController</servlet-name>
<url-pattern>/LoginController</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.security.ui.session.HttpSessionEventPublisher</listener-class>
</listener>
<listener>
<listener-class>gov.va.med.edp.web.servlet.listener.TimeOutIntegrationSessionAttributeListener</listener-class>
</listener>
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
@ -131,17 +111,7 @@
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>tracking.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>board.html</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>logout.html</url-pattern>
<url-pattern>*.html</url-pattern>
</servlet-mapping>
<session-config>
@ -157,60 +127,60 @@
<location>/error500.jsp</location>
</error-page>
<security-constraint>
<web-resource-collection>
<web-resource-name>ED Tracking Board XML Services</web-resource-name>
<url-pattern>*.xml</url-pattern>
<http-method>GET</http-method>
<http-method>POST</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>AUTHENTICATED_KAAJEE_USER</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<!--<security-constraint>-->
<!--<web-resource-collection>-->
<!--<web-resource-name>ED Tracking Board XML Services</web-resource-name>-->
<!--<url-pattern>*.xml</url-pattern>-->
<!--<http-method>GET</http-method>-->
<!--<http-method>POST</http-method>-->
<!--</web-resource-collection>-->
<!--<auth-constraint>-->
<!--<role-name>AUTHENTICATED_KAAJEE_USER</role-name>-->
<!--</auth-constraint>-->
<!--<user-data-constraint>-->
<!--<transport-guarantee>NONE</transport-guarantee>-->
<!--</user-data-constraint>-->
<!--</security-constraint>-->
<security-constraint>
<web-resource-collection>
<web-resource-name>ED Tracking Board Flex Client</web-resource-name>
<url-pattern>*.swf</url-pattern>
<url-pattern>tracking.html</url-pattern>
<url-pattern>board.html</url-pattern>
<http-method>GET</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>AUTHENTICATED_KAAJEE_USER</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<!--<security-constraint>-->
<!--<web-resource-collection>-->
<!--<web-resource-name>ED Tracking Board Flex Client</web-resource-name>-->
<!--<url-pattern>*.swf</url-pattern>-->
<!--<url-pattern>tracking.html</url-pattern>-->
<!--<url-pattern>board.html</url-pattern>-->
<!--<http-method>GET</http-method>-->
<!--</web-resource-collection>-->
<!--<auth-constraint>-->
<!--<role-name>AUTHENTICATED_KAAJEE_USER</role-name>-->
<!--</auth-constraint>-->
<!--<user-data-constraint>-->
<!--<transport-guarantee>NONE</transport-guarantee>-->
<!--</user-data-constraint>-->
<!--</security-constraint>-->
<security-constraint>
<web-resource-collection>
<web-resource-name>ED Tracking Board Debug Screen</web-resource-name>
<url-pattern>debug.jsp</url-pattern>
<http-method>GET</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>AUTHENTICATED_KAAJEE_USER</role-name>
</auth-constraint>
<user-data-constraint>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<!--<security-constraint>-->
<!--<web-resource-collection>-->
<!--<web-resource-name>ED Tracking Board Debug Screen</web-resource-name>-->
<!--<url-pattern>debug.jsp</url-pattern>-->
<!--<http-method>GET</http-method>-->
<!--</web-resource-collection>-->
<!--<auth-constraint>-->
<!--<role-name>AUTHENTICATED_KAAJEE_USER</role-name>-->
<!--</auth-constraint>-->
<!--<user-data-constraint>-->
<!--<transport-guarantee>NONE</transport-guarantee>-->
<!--</user-data-constraint>-->
<!--</security-constraint>-->
<login-config>
<auth-method>FORM</auth-method>
<form-login-config>
<form-login-page>login/login.jsp</form-login-page>
<form-error-page>login/loginerror.jsp</form-error-page>
</form-login-config>
</login-config>
<security-role>
<role-name>AUTHENTICATED_KAAJEE_USER</role-name>
</security-role>
<!--<login-config>-->
<!--<auth-method>FORM</auth-method>-->
<!--<form-login-config>-->
<!--<form-login-page>login/login.jsp</form-login-page>-->
<!--<form-error-page>login/loginerror.jsp</form-error-page>-->
<!--</form-login-config>-->
<!--</login-config>-->
<!---->
<!--<security-role>-->
<!--<role-name>AUTHENTICATED_KAAJEE_USER</role-name>-->
<!--</security-role>-->
</web-app>

View File

@ -1,18 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd">
<weblogic-web-app>
<session-descriptor>
<session-param>
<param-name>CookieName</param-name>
<param-value>edJSESSIONID</param-value>
</session-param>
<session-param>
<param-name>PersistentStoreType</param-name>
<param-value>replicated_if_clustered</param-value>
</session-param>
</session-descriptor>
<container-descriptor>
<session-monitoring-enabled>true</session-monitoring-enabled>
</container-descriptor>
<context-root>${edis.tracking.trackingContextRoot}</context-root>
</weblogic-web-app>

View File

@ -1,14 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<%@ page language="java" %>
<HTML><HEAD>
<!--<p><a href="<%= request.getContextPath() %>/login/login.jsp">Try login again.</a></p>
*
* @author Infrastructure & Security Service
* @version 1.0.1.002
* -->
<TITLE>Login Session Time out Error</TITLE></HEAD>
<BODY>
<h3>Your session expired during login, please try again by restarting </h3>
<h3> the login process by using your original bookmark, shortcut or URL destination </h3>
</BODY></HTML>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.7 KiB

View File

@ -1,173 +0,0 @@
/**
* This JavaScript file contains functions that are needed for login.
* @author Infrastructure & Security Service
* @version 1.0.1.002
*/
function preserveRadioGroup (evt) {
this.checked = this.storedChecked;
var rgb = this.form[this.name];
if (!rgb.length && rgb.storedChecked)
rgb.checked = true;
else
for (var b = 0; b < rgb.length; b++)
rgb[b].checked = rgb[b].storedChecked ? true : false;
}
function disableRadioGroup (radioGroup) {
if (!radioGroup.disabled) {
radioGroup.disabled = true;
if (document.all || document.getElementById) {
if (!radioGroup.length)
radioGroup.disabled = true;
else
for (var b = 0; b < radioGroup.length; b++)
radioGroup[b].disabled = true;
}
else {
if (!radioGroup.length) {
radioGroup.storedChecked = radioGroup.checked;
radioGroup.oldOnClick = radioGroup.onclick;
radioGroup.onclick = preserveRadioGroup;
}
else
for (var b = 0; b < radioGroup.length; b++) {
radioGroup[b].storedChecked = radioGroup[b].checked;
radioGroup[b].oldOnClick = radioGroup[b].onclick;
radioGroup[b].onclick = preserveRadioGroup;
}
}
}
}
function enableRadioGroup (radioGroup) {
if (radioGroup.disabled) {
radioGroup.disabled = false;
if (document.all || document.getElementById) {
if (!radioGroup.length)
radioGroup.disabled = false;
else
for (var b = 0; b < radioGroup.length; b++)
radioGroup[b].disabled = false;
}
else {
if (!radioGroup.length) {
radioGroup.onclick = radioGroup.oldOnClick;
}
else
for (var b = 0; b < radioGroup.length; b++) {
radioGroup[b].onclick = radioGroup[b].oldOnClick;
}
}
}
}
function isblank(s) {
slen = s.length;
for (var i = 0; i < slen; i++) {
var c = s.charAt(i);
if ((c != ' ') && (c != '\n') && (c != '')) return false;
}
return true;
}
function disableObj(obj) {
obj.disabled = true;
}
function enableObj(obj) {
obj.disabled = false;
}
function checkHF(myForm,mySelect,myRadioButtonGroup,myHiddenObj1,myHiddenObj2,myHiddenObj3) {
disableInstitutionObj(myForm,mySelect,myRadioButtonGroup,myHiddenObj1,myHiddenObj2)
if (myHiddenObj3.value == "number") {
reSortSelectOptions(myForm,mySelect,"value");
}
else if (myHiddenObj3.value == "name") {
reSortSelectOptions(myForm,mySelect,"text");
}
}
function disableInstitutionObj(myForm,mySelect,myRadioButtonGroup,myHiddenObj1,myHiddenObj2) {
if (myHiddenObj1.value == "true") disableObj(mySelect);
if ((myHiddenObj1.value == "true") || (myHiddenObj2.value == "true")) {
disableRadioGroup(myRadioButtonGroup);
}
}
function enableInstitutionObj(myForm,mySelect,myRadioButtonGroup,myHiddenObj1,myHiddenObj2) {
myHiddenObj1.value = "false";
myHiddenObj2.value = "false";
enableObj(mySelect);
enableRadioGroup(myRadioButtonGroup);
}
function hasOptions(obj) {
if (obj!=null && obj.options!=null) { return true; }
return false;
}
function sortSelect(obj,sortBy) {
var o = new Array();
if (!hasOptions(obj)) { return false; }
for (var i=0; i<obj.options.length; i++) {
o[o.length] = new Option( obj.options[i].text, obj.options[i].value, obj.options[i].defaultSelected, obj.options[i].selected) ;
}
if (o.length==0) { return true; }
if (sortBy == "text") {
o = o.sort(
function(a,b) {
if ((a.text+"") < (b.text+"")) { return -1; }
if ((a.text+"") > (b.text+"")) { return 1; }
return 0;
}
);
}
else if (sortBy == "value") {
o = o.sort(
function(a,b) {
if ((a.value+"") < (b.value+"")) { return -1; }
if ((a.value+"") > (b.value+"")) { return 1; }
return 0;
}
);
}
else {
alert("\nError encountered while sorting institutions!!!");
}
for (var i=0; i<o.length; i++) {
obj.options[i] = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
}
return true;
}
function reSortSelectOptions(formRef,selectRef,sortBy) {
if (!formRef) {
alert("\nForm reference unknown!!!");
}
else if (selectRef.length <1) {
alert("\n" + selectRef.name + " drop down component is empty!!!");
}
else {
var result = sortSelect(selectRef,sortBy);
if (!result) {
alert("\nSorting Select Object failed!!!");
}
}
}
function doInitialSortOnDivisions(myForm,mySelect,mySortPref,mycookie) {
var allcookies = mycookie;
var cookieArry = allcookies.split(";");
for (var i=0; i < cookieArry.length; i++) {
cookieArry[i]=cookieArry[i].split("=");
if ((cookieArry[i][0].indexOf("gov.va.med.authentication.kernel.defaultSortDivisionBy") != -1) &&
(cookieArry[i][1] == "name")) {
//Now call function to sort divisions by name.
reSortSelectOptions(myForm,mySelect,mySortPref)
break;
}
}
}

View File

@ -1,250 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<%@ page language="java" session = "false" %>
<%@ page import="gov.va.med.authentication.kernel.ConfigurationVO,
gov.va.med.authentication.kernel.LoginController,
weblogic.servlet.security.ServletAuthentication;"%>
<%
// Turn off cache so that a user cannot navigate back to the login page after post-login
response.setHeader("Cache-Control","no-store, no-cache, must-revalidate"); //HTTP 1.1
response.setHeader("Pragma","no-cache"); //HTTP 1.0
response.setDateHeader ("Expires", 0); //prevents caching at the proxy server
%>
<HTML>
<HEAD>
<!--
*
* @author Infrastructure & Security Service
* @version 1.0.1.002
* -->
<STYLE type="text/css">
.scrollPane { height:18em; overflow: auto; }
</STYLE>
<TITLE>Login Page</TITLE>
<script type="text/javascript" src="<%= request.getContextPath()%>/login/javascript/login.js"></script>
</HEAD>
<BODY onload="javascript:checkHF(document.LoginForm,document.LoginForm.institution,document.LoginForm.sortInstBy,document.LoginForm.disableInstitutionObjHF,document.LoginForm.disableSortByObjHF,document.LoginForm.sortByObjHF);document.LoginForm.access.focus();">
<a href="#skip" title="Skip to login fields"></a>
<%
/*
It could be argued that using code within JSP is not a good thing, but for such a small app it's
completely acceptable. If we were working with an HTML designer, the separation would be good. But then
JSTL would be needed and with that we'd introduce some version of that as a dependency, which is preferably
avoided given because we're embedded, we force these dependencies on the containing application as well.
*/
ConfigurationVO kaajeeEnv = ConfigurationVO.getInstance();
/*
Here if the protocol is 'http', I redirected the user to the same page using 'https' protocol.
*/
if(request.getParameter("relogin")!=null){
HttpSession hSess = request.getSession(false);
if(hSess == null) {
StringBuffer sbsession = new StringBuffer(request.getContextPath());
sbsession.append("/login/SessionTimeout.jsp");
response.sendRedirect(sbsession.toString());
return;
}
}
HttpSession hSess = request.getSession(true);
String desiredSchema = "https"; //or http
String usingSchema = request.getScheme();
if(kaajeeEnv.getHTTPSPortLis() != null ) {
if(!desiredSchema.equals(usingSchema)) {
StringBuffer sburl = request.getRequestURL();
java.net.URL url = new java.net.URL(sburl.toString());
hSess = request.getSession(true);
Integer portValue = new Integer(url.getPort());
hSess.setAttribute("portnumber",portValue);
String urlString = desiredSchema+"://"+ url.getHost() +":"+kaajeeEnv.getHTTPSPortLis()+url.getPath();
response.sendRedirect(response.encodeRedirectURL(urlString));
return;
}
}
%>
<FORM name="LoginForm" method="post" action="<%= request.getContextPath() %>/LoginController" onSubmit="javascript:enableInstitutionObj(document.LoginForm,document.LoginForm.institution,document.LoginForm.sortInstBy,document.LoginForm.disableInstitutionObjHF,document.LoginForm.disableSortByObjHF)">
<table align="center" summary="This table is for formatting purposes only">
<tr>
<td>
<table width="75%" border="0" align="center" cellpadding="4" cellspacing="4" bgcolor="#eeeeee">
<caption align="left"><strong>System Announcements:</strong></caption>
<tr><td><div class="scrollPane"><%= kaajeeEnv.getIntroductoryText() %></div></td></tr></table>
<table border="0" align="center" cellpadding="3" cellspacing="3" summary="This table is for formatting purposes only">
<tr align="center">
<td colspan="2" nowrap><h3>Login: <%= kaajeeEnv.getHostApplicationName() %></h3></td>
</tr>
<tr>
<td><img src="<%= request.getContextPath() %>/login/images/HealtheVetVistaSmallBlue.jpg" alt="Health e Vet Vista logo" width="120" height="60"></td>
<td><table border="0" align="center" cellpadding="3" cellspacing="3" summary="This table is for formatting purposes only">
<tr>
<th align="right" nowrap><a name="skip"></a>Access Code:</th>
<td><input type="password" name="access" value="" size=16 maxlength=20></td>
<td>&nbsp;</td>
</tr>
<tr>
<th align="right" nowrap>Verify Code:</th>
<td><input type="password" name="verify" value="" size=16 maxlength=20></td>
</tr>
</table></td></tr>
<tr>
<%
//1. Initialize values
String kaajeeDefaultInstitutionValue = "";
String kaajeeDisableInstitutionComponentsValue = "";
String kaajeeSortStationByValue = "";
String kaajeeDisableSortStationByValue = "";
boolean kaajeeDefaultInstitutionParamFound = false;
boolean kaajeeDisableInstitutionParamFound = false;
boolean kaajeeSortStationByParamFound = false;
boolean kaajeeDisableSortStationByParamFound = false;
//2. Get targetURL and parse out parameters
String targetURL = ServletAuthentication.getTargetURLForFormAuthentication(request.getSession());
if (targetURL == null) {
StringBuffer sbNavErrorPg = new StringBuffer(request.getContextPath());
sbNavErrorPg.append("/login/navigationerror.jsp");
response.sendRedirect(sbNavErrorPg.toString());
return;
}
int paramPos = targetURL.indexOf('?');
String paramList = (paramPos > -1) ? targetURL.substring(paramPos + 1, targetURL.length()) : "";
String[] paramArray = paramList.split("\u0026"); //split on '&' char
for (int i=0; i < paramArray.length; i++) {
String[] tempArray=paramArray[i].split("\u003D"); //split on '=' char
if (tempArray[0].indexOf("kaajeeDefaultInstitution") != -1) {
kaajeeDefaultInstitutionValue = tempArray[1];
kaajeeDefaultInstitutionParamFound = true;
} else {
if (tempArray[0].indexOf("kaajeeDisableInstitutionComponents") != -1) {
kaajeeDisableInstitutionComponentsValue = tempArray[1];
kaajeeDisableInstitutionParamFound = true;
} else {
if (tempArray[0].indexOf("kaajeeSortStationBy") != -1) {
kaajeeSortStationByValue = tempArray[1];
kaajeeSortStationByParamFound = true;
} else {
if (tempArray[0].indexOf("kaajeeDisableSortStationBy") != -1) {
kaajeeDisableSortStationByValue = tempArray[1];
kaajeeDisableSortStationByParamFound = true;
}
}
}
}
if ((kaajeeDefaultInstitutionParamFound) && (kaajeeDisableInstitutionParamFound) && (kaajeeSortStationByParamFound) && (kaajeeDisableSortStationByParamFound)) break;
}
//
//3. Get default login institution and sorting preference if any from cookies
boolean sortCookieFound = false;
boolean instCookieFound = false;
String defaultSortInstBy="";
String defaultInst="";
String cookieDefaultSortInstitutionByString = LoginController.COOKIE_DEFAULT_SORT_INSTITUTION_BY_STRING;
String cookieDefaultDivisionString = LoginController.COOKIE_DEFAULT_DIVISION_STRING;
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (int i=0;i<cookies.length;i++) {
if (cookies[i].getName().equals(cookieDefaultSortInstitutionByString)) {
defaultSortInstBy=cookies[i].getValue();
// store in session for LoginController, post-submit
hSess.setAttribute(LoginController.SESSION_KEY_COOKIE_DEFAULT_SORT_INSTITUTION_BY, defaultSortInstBy);
sortCookieFound = true;
} else {
if (cookies[i].getName().equals(cookieDefaultDivisionString)) {
defaultInst=cookies[i].getValue();
// store in session for LoginController, post-submit
hSess.setAttribute(LoginController.SESSION_KEY_COOKIE_DEFAULT_DIVISION, defaultInst);
instCookieFound = true;
}
}
if ((sortCookieFound) && (instCookieFound)) break;
}
}
String radioButton1CheckValue = ((kaajeeSortStationByValue.trim().length() > 0) ?
(kaajeeSortStationByValue.equals("number") ? "checked" : "") :
((defaultSortInstBy.equals("")) ||
(defaultSortInstBy.equals("number")) ? "checked" : ""));
String radioButton2CheckValue = ((kaajeeSortStationByValue.trim().length() > 0) ?
(kaajeeSortStationByValue.equals("name") ? "checked" : "") :
((defaultSortInstBy.equals("name")) ? "checked" : ""));
%>
<td>
<input type=radio <%= radioButton1CheckValue %> name=sortInstBy value="number" onclick="reSortSelectOptions(this.form,this.form.institution,'value')">Sort by Station Number *</td>
<td> <input type=radio <%= radioButton2CheckValue %> name=sortInstBy value="name" onclick="reSortSelectOptions(this.form,this.form.institution,'text')">Sort by Station Name *
</td>
</tr>
<tr> <td > <input type=hidden name="disableInstitutionObjHF" value=<%= kaajeeDisableInstitutionComponentsValue %> ></td></tr>
<tr> <td > <input type=hidden name="disableSortByObjHF" value=<%= kaajeeDisableSortStationByValue %> ></td></tr>
<tr> <td > <input type=hidden name="sortByObjHF" value=<%= kaajeeSortStationByValue %> ></td></tr>
<tr align="center">
<th colspan="2" nowrap>Institution:
<select name="institution" size="1">
<%
//4. Initialize and Create Option List
String imOptionList = "";
if (defaultSortInstBy.equals("name")) {
imOptionList = kaajeeEnv.getJspDropDownListLoginOptionsByName();
} else {
imOptionList = kaajeeEnv.getJspDropDownListLoginOptions();
}
// TODO: if string is "", show error message?
//5. Set the selected institution in the list based on the cookie value
if ((defaultInst != null) || ((kaajeeDefaultInstitutionValue != null) && (kaajeeDefaultInstitutionValue.trim().length() > 0))) {
// int indexDefaultInst = imOptionList.indexOf("value="+defaultInst+">");
StringBuffer sbInst = new StringBuffer();
sbInst.append(((kaajeeDefaultInstitutionValue != null) && (kaajeeDefaultInstitutionValue.trim().length() > 0)) ? kaajeeDefaultInstitutionValue : defaultInst);
int indexDefaultInst = imOptionList.indexOf("value="+ sbInst.toString() +">");
if (indexDefaultInst > -1) {
StringBuffer sb = new StringBuffer();
sb.append(imOptionList.substring(0, indexDefaultInst -1));
sb.append(" selected ");
sb.append(imOptionList.substring(indexDefaultInst, imOptionList.length()-1));
imOptionList = sb.toString();
}
}
%>
<%= imOptionList %>
</select>
* </th>
<td>&nbsp;</td>
</tr>
<tr>
<td align="right" nowrap>&nbsp;</td>
<!-- <td><input type="checkbox" name="changeverify" value="yes" /><strong>Change Verify Code (Not yet implemented)</strong></td> -->
</tr>
<tr>
<!-- Relocate Login button here!!! -->
<td align="right" nowrap>&nbsp;</td>
<td><input name="submit" type="submit" value="Login"></td>
</tr>
<tr align="center">
<td colspan="2" nowrap>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<tr align="center">
<td colspan="2" nowrap>* Persistent Cookie Used (<a href="<%= request.getContextPath() %>/login/loginCookieInfo.htm"
onClick='window.open("<%= request.getContextPath() %>/login/loginCookieInfo.htm","new_win","status=no,scrollbars=yes,toolbar=no,location=no,width=400,height=450,resizable"); return false;'>more
information</a>).</td>
<td>&nbsp;</td>
</tr>
</table></td>
</tr>
<tr>
<td colspan="2"><div align="center"></div></td>
</tr>
</table>
</FORM>
</BODY>
</HTML>

View File

@ -1,44 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<!--
*
* @author Infrastructure & Security Service
* @version 1.0.1.002
* -->
<title>Login Persistent Cookie Information</title>
</head>
<body>
<h3>Login Persistent Cookie Information</h3>
<p>The login module uses a persistent cookie to store the institution you select at login.
<p>This information is used at the next login, to pre-select the same institution for the next login.</p>
<p>Given that the list of institutions may be quite long for some applications, the goal of using the
persistent cookie is to save you time by pre-selecting the most likely institution choice, which for most
users would be the previously selected login. This is similar to the Windows login, which saves your last
domain used for login, and pre-selects that domain at the next login.
<p>In addition to the above persistent cookie, the login module uses another persistent cookie to store
the user's preference for sorting institutions in the Institution Drop Down box of the login page.
<p>The cookies contains the following information:
<ul>
<li>name: gov.va.med.authentication.kernel.defaultDivision
<li>value: station number used for the previous login
<li>expiry time: 180 days
<li>name: gov.va.med.authentication.kernel.defaultSortInstitutionBy
<li>value: sort order of name or number used for the previous refresh
<li>expiry time: 180 days
</ul>
<h4>Thin Client/Terminal Server users:</h4>
<p>Please note that persistent cookies may not be of much use on Terminal Servers.
<p>The reason is that many Terminal Servers may have been configured to use roaming profiles that may
not retain as part of the user profile cookies and temporary internet files upon the user logout
and disconnect.</p>
<p>In such cases, the recommendation is to create on each Terminal Server shortcuts and save them
on the desktop and/or quick launch bar. These shortcuts should have the desired target URLs plus any
desired KAAJEE supported parameters. For further details regarding how to use these KAAJEE supported
parameters in order to pre-select the desired institution and institution sorting preference,
please refer to the KAAJEE documentation.
<p align="center"><a href="loginCookieInfo.htm" ONCLICK='window.close()'><b>Close Window</b></a></p>
</body>
</html>

View File

@ -1,13 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<%@ page language="java" %>
<HTML><HEAD>
<!--
*
* @author Infrastructure & Security Service
* @version 1.0.1.002
* -->
<TITLE>Forms Authentication Error</TITLE></HEAD>
<BODY>
<h3>Forms authentication login failed.</h3>
<p><a href="<%= request.getContextPath() %>/login/login.jsp">Try login again.</a></p>
</BODY></HTML>

View File

@ -1,31 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<%@ page language="java" %>
<HTML><HEAD>
<!--
*
* @author Infrastructure & Security Service
* @version 1.0.1.002
* -->
<TITLE>Login Error</TITLE></HEAD>
<BODY>
<%
String stringurl = "";
String errorMessage = (String) session.getAttribute("gov.va.med.authentication.kernel.errormessage");
if (errorMessage == null) errorMessage = "";
%>
<!-- TODO: invalidate any login user demographics session object here? -->
<h3>There was a login error detected by the login system:</h3>
<table width="80%" align="center">
<tr><td align="left"><p><b><%= errorMessage %></b></p>
</td></tr></table>
<% session.removeAttribute("gov.va.med.authentication.kernel.errormessage");
session = request.getSession(false);
stringurl = request.getContextPath()+"/login/login.jsp"+"?relogin=true";
%>
<p><a href="<%= stringurl %>">Try login again.</a></p>
</BODY></HTML>

View File

@ -1,14 +0,0 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">
<%@ page language="java" %>
<HTML><HEAD>
<!--<p><a href="<%= request.getContextPath() %>/login/login.jsp">Try login again.</a></p>
*
* @author Infrastructure & Security Service
* @version 1.0.1.002
* -->
<TITLE>Navigation Error</TITLE></HEAD>
<BODY>
<h3>You navigated inappropriately to this page. </h3>
<h3> The login process should only be invoked via the consuming application by using your original bookmark, shortcut or URL destination </h3>
</BODY></HTML>

View File

@ -45,6 +45,24 @@
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
<version>1.1.1</version>
<exclusions>
<exclusion>
<groupId>xerces</groupId>
<artifactId>xmlParserAPIs</artifactId>
</exclusion>
<exclusion>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
</exclusion>
<exclusion>
<groupId>xml-apis</groupId>
<artifactId>xml-apis</artifactId>
</exclusion>
<exclusion>
<groupId>xom</groupId>
<artifactId>xom</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>