REM add in the dependency .jar files
for %%i in (%ANT_HOME%\build-lib\*.jar) do (
- call %ANT_HOME%\bin\cpappend.bat %%i
+ call tools\cpappend.bat %%i
)
if exist %JAVA_HOME%\lib\tools.jar (
# Resources files\r
resources.dir=${basedir}/resources\r
classpathres.dir=${resources.dir}/classpath\r
+conf.dir=${resources.dir}/conf\r
metainf.dir=${resources.dir}/META-INF\r
webinf.dir=${resources.dir}/WEB-INF\r
webpages.dir=${resources.dir}/webpages\r
core-src.dir=${basedir}/src\r
test-src.dir=${basedir}/test\r
\r
+# Tools directory\r
+tools.dir=${basedir}/tools\r
+\r
# Documentation directories\r
year = 2002-2007\r
copyright = Copyright © ${year} UCAID. All Rights Reserved.\r
core-classes.dir=${build.dir}/core\r
test-classes.dir=${build.dir}/test\r
test-results.dir=${build.dir}/test-results\r
+webinf-temp.dir=${build.dir}/WEB-INF\r
\r
# Distribution file releated itmes\r
base-package.name = identityprovider\r
version = ${build-date}\r
dist.dir=${basedir}/dist\r
version=${build-date}\r
-jar.name=${base-package.name}-${version}-jdk-${jdk.target}.war\r
+jar.name=${base-package.name}-${version}-jdk-${jdk.target}.jar\r
+war.name=${base-package.name}-${version}-jdk-${jdk.target}.war\r
src-dist.name=${base-package.name}-${version}-jdk-${jdk.target}-src\r
bin-dist.name=${base-package.name}-${version}-jdk-${jdk.target}-bin
\ No newline at end of file
<project name="Shibboleth Identity Provider" basedir="." default="package">
-
+
<tstamp>
- <format property="build-date" pattern="ddMMyyyy'T'kkmmss" timezone="GMT"/>
+ <format property="build-date" pattern="ddMMyyyy'T'kkmmss" timezone="GMT" />
</tstamp>\r
<!-- User based property file that overrides any property below -->
- <property file="${user.name}-build.properties"/>
-
+ <property file="${user.name}-build.properties" />
+
<!-- Project based property file -->\r
- <property file="build.properties" />\r
+ <property file="build.properties" />
+
+ <!-- Installation specific property file -->
+ <property file="install.properties" />\r
\r
- <!-- Load ant-contrib tasks -->\r
- <taskdef resource="net/sf/antcontrib/antlib.xml" />
-
+ <!-- Load ant-contrib tasks -->\r
+ <taskdef resource="net/sf/antcontrib/antlib.xml" />
+
<!-- Load Checkstyle tasks -->
<taskdef resource="checkstyletask.properties" />\r
\r
- <!-- Classpath for building core classes-->\r
- <path id="build-path">\r
- <fileset dir="${build-lib.dir}" includes="**/*.jar" />\r
- <fileset dir="${lib.dir}" includes="**/*.jar" />\r
- </path>\r
-\r
- <!-- Classpath for testing classes-->\r
- <path id="test-path">\r
- <path refid="build-path" />\r
- <pathelement location="${core-classes.dir}" />\r
- <pathelement location="${core-src.dir}" />\r
- <pathelement location="${test-classes.dir}" />
- <pathelement location="${test-classes.dir}/data" />
- <pathelement location="${test-classes.dir}/log4j.xml" />\r
- <pathelement location="${test-src.dir}" />\r
- <pathelement location="${classpathres.dir}" />\r
- </path>\r
-\r
- <!-- Prepare directory structure for build -->\r
- <target name="build-init">\r
- <mkdir dir="${build.dir}" />\r
- </target>\r
-\r
- <!-- Compile core (non-test) classes -->\r
- <target name="compile-core" depends="build-init, clean-compile">\r
- <mkdir dir="${core-classes.dir}" />\r
-\r
- <javac srcdir="${core-src.dir}" destdir="${core-classes.dir}" includes="**/*.java" debug="on" source="1.5">\r
- <classpath refid="build-path" />\r
- </javac>\r
-\r
- </target>\r
-\r
- <!-- Compile unit test classes -->\r
- <target name="compile-test" depends="compile-core">\r
- <mkdir dir="${test-classes.dir}" />\r
-\r
- <javac srcdir="${test-src.dir}" destdir="${test-classes.dir}" includes="**/*.java" debug="on" source="1.5">\r
- <classpath refid="test-path" />\r
- </javac>\r
-\r
- </target>\r
-\r
- <!-- Compile and run unit tests -->\r
- <target name="test" depends="compile-core, compile-test" description="Runs the unit tests for the project.">\r
- <mkdir dir="${test-results.dir}" />\r
-\r
- <echo message="Excuting unit tests using endorsed directory ${java.endorsed.dirs}" />\r
- <junit printsummary="off" fork="yes" forkmode="once" haltonerror="false" haltonfailure="false" dir="${basedir}" errorproperty="testFailed">\r
- <jvmarg value="-Djava.endorsed.dirs=${java.endorsed.dirs}" />\r
- <classpath refid="test-path" />\r
- <formatter type="xml" />\r
- <batchtest todir="${test-results.dir}">\r
- <fileset dir="${test-classes.dir}">\r
- <include name="**/*Test.class" />\r
- </fileset>\r
- </batchtest>\r
- </junit>\r
- <junitreport todir="${test-results.dir}">\r
- <fileset dir="${test-results.dir}">\r
- <include name="TEST-*.xml"/>\r
- </fileset>\r
- <report format="frames" todir="${test-report.dir}"/>\r
- </junitreport>
-
- <echo message="Test report available at ${test-report.dir}/index.html" />
- <fail if="testFailed" message="Test failure; see ${test-report.dir}/index.html for more information."/>\r
- </target>\r
-\r
- <!-- Javadoc core (non-test) classes -->\r
- <target name="javadoc" description="Creates the JavaDoc documentatin for the project.">\r
- <mkdir dir="${javadoc.dir}" />\r
- <javadoc packagenames="org.opensaml.*" \r
- sourcepath="${core-src.dir}" \r
- destdir="${javadoc.dir}" \r
- author="false" version="true" \r
- windowtitle="${ant.project.name} ${version} Java API" \r
- doctitle="${ant.project.name} ${version} Java API" \r
- bottom="${copyright}"\r
- overview="${core-src.dir}/overview.html">\r
- <classpath refid="build-path" />\r
- </javadoc>\r
- </target>\r
-\r
- <!-- Removes previously compiled files -->\r
- <target name="clean-compile">\r
- <delete dir="${build.dir}" />\r
- </target>\r
-\r
- <!-- Removes all build generated content -->\r
- <target name="clean" depends="clean-compile" description="Removes any artifact produced by the build process.">\r
- <delete dir="${javadoc.dir}" />
- <delete dir="${reports.dir}" />\r
- <delete dir="${dist.dir}" />\r
- </target>\r
-\r
- <!-- Create JAR file -->\r
- <target name="package" depends="compile-core, test" description="Creates the project library jar file.">\r
- <mkdir dir="${dist.dir}" />\r
-\r
- <if>\r
- <equals arg1="${jdk.target}" arg2="1.4" />\r
- <then>\r
- <java classname="com.rc.retroweaver.Weaver">\r
- <arg value="-source" />\r
- <arg value="${core-classes.dir}" />\r
- <classpath>\r
- <fileset dir="${thirdpaty-lib.dir}">\r
- <include name="**/*.jar" />\r
- </fileset>\r
- </classpath>\r
- </java>\r
-\r
- <echo message="**************************************************************" />\r
- <echo message=" Remember, you must include the retroweaver-rt jar" />\r
- <echo message=" file, located in the thirdparty-lib directory, along with the" />\r
- <echo message=" ${jar.name} on your" />\r
- <echo message=" classpath in order to use this with JDK 1.4" />\r
- <echo message="**************************************************************" />\r
-\r
- </then>\r
- </if>\r
-\r
- <jar destfile="${dist.dir}/${jar.name}" whenempty="fail">\r
- <fileset dir="${classpathres.dir}" />
- <fileset dir="${metainf.dir}" />
- <fileset dir="${webinf.dir}" />
- <fileset dir="${webpages.dir}" />
- <zipfileset dir="${core-classes.dir}" prefix="/WEB-INF/classes/" />
- <zipfileset dir="${lib.dir}" prefix="/WEB-INF/lib/" />\r
- </jar>\r
-\r
- </target>\r
-\r
- <!-- **************************************************************** -->\r
- <!-- *** *** -->\r
- <!-- *** Developer Tasks *** -->\r
- <!-- *** *** -->\r
- <!-- **************************************************************** -->\r
-
+ <!-- Classpath for building core classes-->\r
+ <path id="build-path">\r
+ <fileset dir="${build-lib.dir}" includes="**/*.jar" />\r
+ <fileset dir="${lib.dir}" includes="**/*.jar" />\r
+ </path>\r
+\r
+ <!-- Classpath for testing classes-->\r
+ <path id="test-path">\r
+ <path refid="build-path" />\r
+ <pathelement location="${core-classes.dir}" />\r
+ <pathelement location="${core-src.dir}" />\r
+ <pathelement location="${test-classes.dir}" />
+ <pathelement location="${test-classes.dir}/data" />
+ <pathelement location="${test-classes.dir}/log4j.xml" />\r
+ <pathelement location="${test-src.dir}" />\r
+ <pathelement location="${classpathres.dir}" />\r
+ </path>\r
+\r
+ <!-- Prepare directory structure for build -->\r
+ <target name="build-init">\r
+ <mkdir dir="${build.dir}" />\r
+ </target>\r
+\r
+ <!-- Compile core (non-test) classes -->\r
+ <target name="compile-core" depends="build-init, clean-compile">\r
+ <mkdir dir="${core-classes.dir}" />\r
+\r
+ <javac srcdir="${core-src.dir}" destdir="${core-classes.dir}" includes="**/*.java" debug="on" source="1.5">\r
+ <classpath refid="build-path" />\r
+ </javac>\r
+\r
+ </target>\r
+\r
+ <!-- Compile unit test classes -->\r
+ <target name="compile-test" depends="compile-core">\r
+ <mkdir dir="${test-classes.dir}" />\r
+\r
+ <javac srcdir="${test-src.dir}" destdir="${test-classes.dir}" includes="**/*.java" debug="on" source="1.5">\r
+ <classpath refid="test-path" />\r
+ </javac>\r
+\r
+ </target>\r
+\r
+ <!-- Compile and run unit tests -->\r
+ <target name="test" depends="compile-core, compile-test" description="Runs the unit tests for the project.">\r
+ <mkdir dir="${test-results.dir}" />\r
+\r
+ <echo message="Excuting unit tests using endorsed directory ${java.endorsed.dirs}" />\r
+ <junit printsummary="off"\r
+ fork="yes"\r
+ forkmode="once"\r
+ haltonerror="false"\r
+ haltonfailure="false"\r
+ dir="${basedir}"\r
+ errorproperty="testFailed">\r
+ <jvmarg value="-Djava.endorsed.dirs=${java.endorsed.dirs}" />\r
+ <classpath refid="test-path" />\r
+ <formatter type="xml" />\r
+ <batchtest todir="${test-results.dir}">\r
+ <fileset dir="${test-classes.dir}">\r
+ <include name="**/*Test.class" />\r
+ </fileset>\r
+ </batchtest>\r
+ </junit>\r
+ <junitreport todir="${test-results.dir}">\r
+ <fileset dir="${test-results.dir}">\r
+ <include name="TEST-*.xml" />\r
+ </fileset>\r
+ <report format="frames" todir="${test-report.dir}" />\r
+ </junitreport>
+
+ <echo message="Test report available at ${test-report.dir}/index.html" />
+ <fail if="testFailed" message="Test failure; see ${test-report.dir}/index.html for more information." />\r
+ </target>\r
+\r
+ <!-- Javadoc core (non-test) classes -->\r
+ <target name="javadoc" description="Creates the JavaDoc documentatin for the project.">\r
+ <mkdir dir="${javadoc.dir}" />\r
+ <javadoc packagenames="org.opensaml.*"\r
+ sourcepath="${core-src.dir}"\r
+ destdir="${javadoc.dir}"\r
+ author="false"\r
+ version="true"\r
+ windowtitle="${ant.project.name} ${version} Java API"\r
+ doctitle="${ant.project.name} ${version} Java API"\r
+ bottom="${copyright}"\r
+ overview="${core-src.dir}/overview.html">\r
+ <classpath refid="build-path" />\r
+ </javadoc>\r
+ </target>\r
+\r
+ <!-- Removes previously compiled files -->\r
+ <target name="clean-compile">\r
+ <delete dir="${build.dir}" />\r
+ </target>\r
+\r
+ <!-- Removes all build generated content -->\r
+ <target name="clean" depends="clean-compile" description="Removes any artifact produced by the build process.">\r
+ <delete dir="${javadoc.dir}" />
+ <delete dir="${reports.dir}" />\r
+ <delete dir="${dist.dir}" />\r
+ </target>\r
+\r
+ <!-- Create JAR file -->\r
+ <target name="package" depends="compile-core" description="Creates the project library jar file.">\r
+ <mkdir dir="${dist.dir}" />\r
+\r
+ <if>\r
+ <equals arg1="${jdk.target}" arg2="1.4" />\r
+ <then>\r
+ <java classname="com.rc.retroweaver.Weaver">\r
+ <arg value="-source" />\r
+ <arg value="${core-classes.dir}" />\r
+ <classpath>\r
+ <fileset dir="${thirdpaty-lib.dir}">\r
+ <include name="**/*.jar" />\r
+ </fileset>\r
+ </classpath>\r
+ </java>\r
+\r
+ <echo message="**************************************************************" />\r
+ <echo message=" Remember, you must include the retroweaver-rt jar" />\r
+ <echo message=" file, located in the thirdparty-lib directory, along with the" />\r
+ <echo message=" ${jar.name} on your" />\r
+ <echo message=" classpath in order to use this with JDK 1.4" />\r
+ <echo message="**************************************************************" />\r
+\r
+ </then>\r
+ </if>\r
+
+ <jar destfile="${dist.dir}/${jar.name}" whenempty="fail">
+ <fileset dir="${classpathres.dir}" />
+ <fileset dir="${metainf.dir}" />
+ <zipfileset dir="${core-classes.dir}" />
+ </jar>
+
+ <copy todir="${webinf-temp.dir}">
+ <fileset dir="${webinf.dir}" />
+ <filterset begintoken="$" endtoken="$">
+ <filter token="IDP_HOME" value="${idp.home}" />
+ <filter token="IDP_VERSION" value="${version}" />
+ </filterset>
+ </copy>
+\r
+ <jar destfile="${dist.dir}/${war.name}" whenempty="fail">\r
+ <fileset dir="${classpathres.dir}" />
+ <fileset dir="${metainf.dir}" />
+ <fileset dir="${webinf-temp.dir}" />
+ <fileset dir="${webpages.dir}" />
+ <zipfileset dir="${lib.dir}" prefix="/WEB-INF/lib/" />
+ <zipfileset file="${dist.dir}/${jar.name}" prefix="/WEB-INF/lib/" />\r
+ </jar>\r
+\r
+ </target>
+
+ <target name="install" depends="package" description="Installs the identity provider software.">
+ <mkdir dir="${idp.home}" />
+ <mkdir dir="${idp.home}/lib" />
+ <mkdir dir="${idp.home}/conf" />
+ <mkdir dir="${idp.home}/logs" />
+ <mkdir dir="${idp.home}/bin" />
+ <mkdir dir="${idp.home}/war" />
+
+ <copy todir="${idp.home}/lib" preservelastmodified="true">
+ <fileset dir="${lib.dir}" />
+ <fileset file="${dist.dir}/${jar.name}" />
+ </copy>
+
+ <copy todir="${idp.home}/conf" preservelastmodified="true">
+ <fileset dir="${conf.dir}" />
+ <filterset begintoken="$" endtoken="$">
+ <filter token="IDP_HOME" value="${idp.home}" />
+ <filter token="IDP_VERSION" value="${version}" />
+ </filterset>
+ </copy>
+
+ <copy todir="${idp.home}/bin" preservelastmodified="true">
+ <fileset dir="${tools.dir}" />
+ <filterset begintoken="$" endtoken="$">
+ <filter token="IDP_HOME" value="${idp.home}" />
+ <filter token="IDP_VERSION" value="${version}" />
+ </filterset>
+ </copy>
+
+ <copy todir="${idp.home}/war" file="${dist.dir}/${war.name}" preservelastmodified="true" />
+
+ </target>\r
+\r
+ <!-- **************************************************************** -->\r
+ <!-- *** *** -->\r
+ <!-- *** Developer Tasks *** -->\r
+ <!-- *** *** -->\r
+ <!-- **************************************************************** -->\r
+
<!-- Checks code against style guidelines -->
<target name="checkstyle" description="Developer task: Produces coding standard compliance report.">
<mkdir dir="${reports.dir}" />
-
- <checkstyle config="${basedir}/checkstyle.xml"
- failOnViolation="false"
- classpathref="build-path">
+
+ <checkstyle config="${basedir}/checkstyle.xml" failOnViolation="false" classpathref="build-path">
<fileset dir="src" includes="**/*.java" />
<formatter type="plain" toFile="${reports.dir}/checkstyle-report.txt" />
</checkstyle>
- </target>
- \r
- <!-- Create TGZ source distribution -->
- <target name="tgz-src-dist" depends="package, javadoc" description="Developer task: Creates the tar, gzipped source distribution.">
- <tar tarfile="${dist.dir}/${src-dist.name}.tgz" compression="gzip">
- <tarfileset dir="${build-lib.dir}" prefix="/build-lib/" />
- <tarfileset dir="${lib.dir}" prefix="/lib/" />
- <tarfileset dir="${resources.dir}" prefix="/resources/" />
- <tarfileset dir="${core-src.dir}" prefix="/src/" />
- <tarfileset dir="${test-src.dir}" prefix="/test/" />
- <tarfileset dir="${doc.dir}" prefix="/doc/" />
- <tarfileset file="${dist.dir}/${jar.name}" prefix="/dist/" />
- <tarfileset file="${basedir}/*.*" prefix="/" />
- </tar>
- <checksum file="${dist.dir}/${src-dist.name}.tgz" />
- </target>
-
- <!-- Create TGZ binary distribution -->
- <target name="tgz-bin-dist" depends="package, javadoc" description="Developer task: Creates the tar, gzipped binary distribution.">
- <tar tarfile="${dist.dir}/${bin-dist.name}.tgz" compression="gzip">
- <tarfileset dir="${lib.dir}" prefix="/lib/" />\r
- <tarfileset dir="${resources.dir}" prefix="/resources/" />
- <tarfileset dir="${doc.dir}" prefix="/doc/" />
- <tarfileset file="${dist.dir}/${jar.name}" prefix="/dist/" />
- </tar>
- <checksum file="${dist.dir}/${bin-dist.name}.tgz" />
- </target>
-
- <!-- Create ZIP source distribution -->
- <target name="zip-src-dist" depends="package, javadoc" description="Developer task: Creates the zipped source distribution.">
- <zip zipfile="${dist.dir}/${src-dist.name}.zip" whenempty="fail">
- <zipfileset dir="${build-lib.dir}" prefix="build-lib/" />
- <zipfileset dir="${lib.dir}" prefix="lib/" />\r
- <zipfileset dir="${resources.dir}" prefix="/resources/" />
- <zipfileset dir="${core-src.dir}" prefix="src/" />
- <zipfileset dir="${test-src.dir}" prefix="test/" />
- <zipfileset dir="${doc.dir}" prefix="doc/" />
- <zipfileset file="${dist.dir}/${jar.name}" prefix="/dist/" />
- <zipfileset file="${basedir}/*.*" prefix="" />
- </zip>
- <checksum file="${dist.dir}/${src-dist.name}.zip" />
- </target>
-
- <!-- Create ZIP binary distribution -->
- <target name="zip-bin-dist" depends="package, javadoc" description="Developer task: Creates the zipped binary distribution.">
- <zip zipfile="${dist.dir}/${bin-dist.name}.zip" whenempty="fail">
- <zipfileset dir="${lib.dir}" prefix="lib/" />\r
- <zipfileset dir="${resources.dir}" prefix="/resources/" />
- <zipfileset dir="${doc.dir}" prefix="doc/" />
- <zipfileset file="${dist.dir}/${jar.name}" prefix="/dist/" />
- </zip>
- <checksum file="${dist.dir}/${bin-dist.name}.zip" />
- </target>\r
+ </target>\r
\r
</project>
\ No newline at end of file
--- /dev/null
+idp.home = /opt/shibboleth-idp-${version}
+idp.overwrite-config = false
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
-<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
- version="2.4">
-
+<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
+ version="2.4">
+
+ <display-name>Shibboleth $IDP_VERSION$ Identity Provider</display-name>
+
<!--
- Spring 2.0 application context files. Files are loaded in the order they appear with subsequent files
- overwritting same named beans in previous files.
+ Spring 2.0 application context files. Files are loaded in the order they appear with subsequent files
+ overwritting same named beans in previous files.
-->
<context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>/WEB-INF/idpContext.xml, /WEB-INF/resolverContext.xml, /WEB-INF/profile.xml</param-value>
+ <param-name>contextConfigLocation</param-name>
+ <param-value>
+ file://$IDP_HOME$/conf/internal.xml;
+ file://$IDP_HOME$/conf/services.xml;
+ </param-value>
</context-param>
-
+
<!--
- Spring 2.0 listener used to load up the configuration
+ Spring 2.0 listener used to load up the configuration
-->
<listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
+ <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
-
+
<!--
- Session time inactivity timeout, in minutes.
-
- A timeout of 0 or less means the session never timesout. Such a setting is strongly discouraged and will
- almost certainly lead to memory exhaustion under moderate to heavy loads or in servers with prolonged uptime.
- -->
+ Session time inactivity timeout, in minutes.
+
+ A timeout of 0 or less means the session never timesout. Such a setting is strongly discouraged and will
+ almost certainly lead to memory exhaustion under moderate to heavy loads or in servers with prolonged uptime.
+ -->
<session-config>
<session-timeout>30</session-timeout>
</session-config>
<!--
- Profile Request Dispatcher
+ Profile Request Dispatcher
-->
<servlet>
<servlet-name>ProfileRequestDispatcher</servlet-name>
- <servlet-class>edu.internet2.middleware.shibboleth.idp.profile.ProfileRequestDispatcher</servlet-class>
+ <servlet-class>
+ edu.internet2.middleware.shibboleth.idp.profile.ShibbolethProfileRequestDispatcher
+ </servlet-class>
</servlet>
-
+
<servlet-mapping>
<servlet-name>ProfileRequestDispatcher</servlet-name>
<url-pattern>/IdP</url-pattern>
</servlet-mapping>
-
+
<!--
- Authentication Manager
+ Authentication Manager
-->
- <servlet>
+ <!--
+ <servlet>
<servlet-name>AuthenticationManager</servlet-name>
<servlet-class>edu.internet2.middleware.shibboleth.idp.authn.AuthenticationManager</servlet-class>
- </servlet>
-
- <servlet-mapping>
+ </servlet>
+
+ <servlet-mapping>
<servlet-name>AuthenticationManager</servlet-name>
<url-pattern>/IdP/Authn</url-pattern>
- </servlet-mapping>
-
+ </servlet-mapping>
+ -->
+
</web-app>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
+
+ <renderer renderedClass="edu.internet2.middleware.shibboleth.common.log.AuditLogEntry"
+ renderingClass="edu.internet2.middleware.shibboleth.common.log.CSVAuditEventRenderer" />
+
+ <renderer renderedClass="edu.internet2.middleware.shibboleth.common.log.AccessLogEntry"
+ renderingClass="edu.internet2.middleware.shibboleth.common.log.CSVAcessEventRenderer" />
+
+ <!-- ================================= -->
+ <!-- Preserve messages in a local file -->
+ <!-- ================================= -->
+
+ <!-- A time/date based rolling appender -->
+ <appender name="IDP_LOG" class="org.apache.log4j.DailyRollingFileAppender">
+ <param name="File" value="$IDP_HOME$/conf/idp.log" />
+ <param name="Append" value="false" />
+
+ <!-- Rollover at midnight each day -->
+ <param name="DatePattern" value="'.'yyyy-MM-dd" />
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message -->
+ <param name="ConversionPattern" value="%d %-5p [%c] %m%n" />\r
+\r
+ <!-- The debug pattern (very slow): Date Priority [Class#Method:Line Number] Message -->
+ <!--
+ <param name="ConversionPattern" value="%d %-5p [%C{1}#%M:%L] %m%n"/>
+ -->
+ </layout>
+ </appender>
+
+ <appender name="IDP_AUDIT" class="org.apache.log4j.DailyRollingFileAppender">
+ <param name="File" value="$IDP_HOME$/conf/audit.log" />
+ <param name="Append" value="false" />
+
+ <!-- Rollover at midnight each day -->
+ <param name="DatePattern" value="'.'yyyy-MM-dd" />
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message -->
+ <param name="ConversionPattern" value="%d %-5p [%c] %m%n" />
+
+ <!-- The debug pattern (very slow): Date Priority [Class#Method:Line Number] Message -->
+ <!--
+ <param name="ConversionPattern" value="%d %-5p [%C{1}#%M:%L] %m%n"/>
+ -->
+ </layout>
+ </appender>
+
+ <appender name="IDP_ACCESS" class="org.apache.log4j.DailyRollingFileAppender">
+ <param name="File" value="$IDP_HOME$/conf/access.log" />
+ <param name="Append" value="false" />
+
+ <!-- Rollover at midnight each day -->
+ <param name="DatePattern" value="'.'yyyy-MM-dd" />
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message -->
+ <param name="ConversionPattern" value="%d %-5p [%c] %m%n" />
+
+ <!-- The debug pattern (very slow): Date Priority [Class#Method:Line Number] Message -->
+ <!--
+ <param name="ConversionPattern" value="%d %-5p [%C{1}#%M:%L] %m%n"/>
+ -->
+ </layout>
+ </appender>
+
+ <!-- ============================== -->
+ <!-- Append messages to the console -->
+ <!-- ============================== -->
+
+ <appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender">
+ <param name="Target" value="System.out" />
+
+ <layout class="org.apache.log4j.PatternLayout">
+ <!-- The default pattern: Date Priority [Category] Message -->\r
+ <!-- param name="ConversionPattern" value="%d %-5p [%c] %m%n"/-->\r
+\r
+ <!-- The debug pattern (very slow): Date Priority [Class#Method:Line Number] Message -->\r
+ <param name="ConversionPattern" value="%d %-5p [%C{1}#%M:%L] %m%n" />
+ </layout>
+ </appender>
+
+
+ <!-- ================ -->
+ <!-- Limit categories -->
+ <!-- ================ -->
+
+ <category name="Shibboleth-Audit">
+ <priority value="CRITICAL" />
+ <appender-ref ref="IDP_AUDIT" />
+ </category>
+
+ <category name="Shibboleth-Access">
+ <priority value="CRITICAL" />
+ <appender-ref ref="IDP_ACCESS" />
+ </category>
+
+ <category name="edu.internet2.middleware.shibboleth">
+ <priority value="DEBUG" />
+ </category>\r
+\r
+\r
+ <!-- ======================= -->
+ <!-- Setup the Root category -->
+ <!-- ======================= -->
+
+ <root>
+ <priority value="WARN" />
+ <appender-ref ref="CONSOLE" />
+ </root>
+
+</log4j:configuration>
\ No newline at end of file
urn:mace:shibboleth:2.0:afp classpath:/schema/shibboleth-2.0-afp.xsd
urn:mace:shibboleth:2.0:resource classpath:/schema/shibboleth-2.0-resource.xsd">
- <LoggingConfiguration>$IdP_HOME$/etc/logging.xml</LoggingConfiguration>
+ <LoggingConfiguration>$IdP_HOME$/conf/logging.xml</LoggingConfiguration>
<service:Service id="shibboleth.ProfileHandler"
type="profile:ShibbolethProfileHandlerManager"
configurationResourcePollingFrequency="300000"
configurationResourcePollingRetryAttempts="10">
<resource:ConfigurationResource type="resource:FileSystemResource">
- $IdP_HOME$/etc/protocol.xml
+ $IDP_HOME$/conf/protocol.xml
</resource:ConfigurationResource>
</service:Service>
configurationResourcePollingFrequency="300000"
configurationResourcePollingRetryAttempts="10">
<resource:ConfigurationResource type="resource:FileSystemResource">
- $IdP_HOME$/etc/relying-party.xml
+ $IDP_HOME$/conf/relying-party.xml
</resource:ConfigurationResource>
</service:Service>
configurationResourcePollingFrequency="300000"
configurationResourcePollingRetryAttempts="10">
<resource:ConfigurationResource type="resource:FileSystemResource">
- $IdP_HOME$/etc/attribute-resolver.xml
+ $IDP_HOME$/conf/attribute-resolver.xml
</resource:ConfigurationResource>
</service:Service>
configurationResourcePollingFrequency="60000"
configurationResourcePollingRetryAttempts="10">
<resource:ConfigurationResource type="resource:FileSystemResource">
- $IdP_HOME$/etc/attribute-filter.xml
+ $IDP_HOME$/conf/attribute-filter.xml
</resource:ConfigurationResource>
</service:Service>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-
- <%
- response.setHeader("Expires","19-Mar-1971 08:23:00 GMT");
- response.setHeader("Cache-control","no-cache");
- response.setHeader("Pragma","no-cache");
- %>
- <%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
- <%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
-
- <jsp:useBean id="shire" scope="request" class="java.lang.String" />
- <jsp:useBean id="target" scope="request" class="java.lang.String" />
- <jsp:useBean id="assertion" scope="request" class="java.lang.String" />
- <jsp:useBean id="hs_helpText" scope="application" class="java.lang.String"/>
- <jsp:useBean id="hs_detailedHelpURL" scope="application" class="java.lang.String"/>
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
- <link rel="stylesheet" type="text/css" href="main.css" />
- <title>Shibboleth Authentication Request Processed</title>
-</head>
-
-<body onload="document.forms[0].submit()">
-
-<%
- if (request.getAttribute("shire") == null
- || request.getAttribute("shire").equals("")
- || request.getAttribute("target") == null
- || request.getAttribute("target").equals("")
- || request.getAttribute("assertion") == null
- || request.getAttribute("assertion").equals(""))
- {
- request.setAttribute("requestURL", request.getRequestURI());
- request.setAttribute("errorText", "This page cannot be accessed directly");
- request.getRequestDispatcher("/IdPError.jsp").forward(request, response);
- }
-%>
-
-<h1>Shibboleth Authentication Request Processed</h1>
-
-<script type="text/javascript">
-<!--
-document.write("<p>You are automatically being redirected to the requested site. ");
-document.write("If the browser appears to be hung up after 15-20 seconds, try reloading ");
-document.write("the page before contacting the technical support staff in charge of the ");
-document.write("desired resource or service you are trying to access.</p>");
-document.write("<h2>Redirecting to requested site...</h2>");
-// -->
-</script>
-
-<noscript>
-<p>
-<strong>Note:</strong> Since your browser does not support JavaScript, you must press the
-Continue button once to proceed to the requested site.
-</p>
-</noscript>
-
-
-<form id="shibboleth" action="<bean:write name="shire"/>" method="post">
-<div>
-<input type="hidden" name="TARGET" value="<bean:write name="target" />" />
-<input type="hidden" name="SAMLResponse" value="<bean:write name="assertion" />" />
-</div>
-<noscript>
-<div>
-<input type="submit" value="Continue" />
-</div>
-</noscript>
-
-</form>
-</body>
-</html>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "DTD/xhtml1-strict.dtd">
- <%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
- <%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
-
- <jsp:useBean id="requestURL" scope="request" class="java.lang.String"/>
- <jsp:useBean id="errorText" scope="request" class="java.lang.String"/>
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <link rel="stylesheet" type="text/css" href="main.css" />
- <title>Shibboleth Identity Provider Failure</title>
-</head>
-
-<body>
-<div class="head">
-<img src="images/logo.jpg" alt="Logo" />
-<h1>Shibboleth Identity Provider Failure</h1>
-</div>
-
-<p>The Shibboleth authentication system experienced a technical failure.</p>
-
-<p>Please email <a href="mailto:root@localhost">root@localhost</a> and include the following error message:</p>
-
-<p class="error">Identity Provider failure at (<bean:write name="requestURL" />)</p>
-
-<p><bean:write name="errorText" /></p>
-
-
-</body>
-</html>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "DTD/xhtml1-strict.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <link rel="stylesheet" type="text/css" href="<shibmlp styleSheet/>" />
- <title>Authorization Failed</title>
-</head>
-
-<body>
-<div class="head">
-<img src="<shibmlp logoLocation/>" alt="Logo" />
-<h1>Authorization Failed</h1>
-</div>
-
-Based on the information provided to this application about you, you are
-not authorized to access the resource at "<shibmlp requestURL/>"<br>
-
-Please contact the administrator of this service or application if you
-believe this to be an error.<br>
-
-</body>
-</html>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-
- <%
- response.setHeader("Expires","19-Mar-1971 08:23:00 GMT");
- response.setHeader("Cache-control","no-cache");
- response.setHeader("Pragma","no-cache");
- %>
- <%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
- <%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
-
- <jsp:useBean id="wreply" scope="request" class="java.lang.String" />
- <jsp:useBean id="wa" scope="request" class="java.lang.String" />
- <jsp:useBean id="wresult" scope="request" class="java.lang.String" />
- <jsp:useBean id="hs_helpText" scope="application" class="java.lang.String"/>
- <jsp:useBean id="hs_detailedHelpURL" scope="application" class="java.lang.String"/>
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
-<head>
- <link rel="stylesheet" type="text/css" href="main.css" />
- <title>ADFS Authentication Request Processed</title>
-</head>
-
-<body onload="document.forms[0].submit()">
-
-<%
- if (request.getAttribute("wa") == null
- || request.getAttribute("wreply").equals("")
- || request.getAttribute("wresult") == null)
- {
- request.setAttribute("requestURL", request.getRequestURI());
- request.setAttribute("errorText", "This page cannot be accessed directly");
- request.getRequestDispatcher("/IdPError.jsp").forward(request, response);
- }
-%>
-
-<h1>ADFS Authentication Request Processed</h1>
-
-<script type="text/javascript">
-<!--
-document.write("<p>You are automatically being redirected to the requested site. ");
-document.write("If the browser appears to be hung up after 15-20 seconds, try reloading ");
-document.write("the page before contacting the technical support staff in charge of the ");
-document.write("desired resource or service you are trying to access.</p>");
-document.write("<h2>Redirecting to requested site...</h2>");
-// -->
-</script>
-
-<noscript>
-<p>
-<strong>Note:</strong> Since your browser does not support JavaScript, you must press the
-Continue button once to proceed to the requested site.
-</p>
-</noscript>
-
-
-<form id="adfs" action="<bean:write name="wreply"/>" method="post">
-<div>
-<input type="hidden" name="wa" value="<bean:write name="wa" />" />
-<logic:present name="wctx" scope="request">
- <input type="hidden" name="wctx" value="<bean:write name="wctx" />" />
-</logic:present>
-<input type="hidden" name="wresult" value="<bean:write name="wresult" />" />
-</div>
-<noscript>
-<div>
-<input type="submit" value="Continue" />
-</div>
-</noscript>
-
-</form>
-</body>
-</html>
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <style type="text/css" title="styled">
- @import url('login.css');
- </style>
-
- <title>Example Organization WebLogin</title>
- </head>
- <body>
- <div id="page">
- <div id="head">
- <h1>Example Organization</h1>
- </div>
-
- <div id="main">
- <div id="content">
- <p>
- Please login:
- </p>
- <form method="post" action="j_security_check">
- <table class="login">
- <tr class="login">
- <td colspan="3" class="login"><span class="errortext">Incorrect Username or Password. Please try again.</span></td>
- </tr>
- <tr class="login">
- <td class="login"><strong>UID</strong></td>
- <td class="login"><input name="j_username" type="text" id="j_username" size="16" /></td></tr>
- <tr class="login">
- <td class="login">
- <strong>Password</strong>
- </td>
-
- <td class="login">
- <input name="j_password" type= "password" id="j_password" size= "16" /></td>
- <td class="login">
- <input name="Login" type="submit" id="Login" value="Login" />
- </td>
- </tr>
- </table>
- </form>
-
- </div>
- <div id="helptext">
- <p>
- The resource that you have attempted to access requires that you log in with your with your Example Organization UID.
- </p>
- </div>
-
- </div>
- </div>
- </body>
-</html>
+++ /dev/null
-body {
- font-family: sans-serif, helvetica, arial, verdana;
- font-size:1em;
- color:black;
- background-color: #eeeeee;
-}
-
-#page {
- margin-top: 2em;
- margin-left: auto;
- margin-right: auto;
- width: 40em;
- border-style: solid;
- border-color: black;
- border-width: 2px;
- background-color: #a3a9b7;
-}
-
-#head {
- background-color: #798399;
- margin: 0;
- color: #eeeeee;
- border-bottom: 2px solid black;
- width: 100%;
- text-align: right;
- padding-top: .2em;
- padding-bottom: .2em;
-}
-
-#helptext {
- border-style: solid;
- border-top-width: 1px;
- border-bottom-width: 2px;
- border-left-width: 2px;
- border-right-width: 2px;
- background-color: #eeeeee;
- margin: 0;
- padding-top: .3em;
- padding-left: 1.5em;
- padding-right: 1.5em;
- padding-bottom: .5em;
- font-size: .75em;
-}
-
-#helptext dd {
- margin-bottom: .75em;
- margin-top: .2em;
-}
-
-h1 {
- display: inline;
- font-weight: bold;
- font-size: 1.1em;
- padding-right: 1em;
-}
-
-#content {
- border: 2px solid black;
- background-color: #eeeeee;
- padding: 3%;
-}
-
-#content a {
- color: #5b6475;
-}
-
-#main {
- margin: 6%;
-}
-
-table {
- border: none;
- border-collapse: collapse;
- table-layout: auto;
-}
-
-td {
- border: none;
- text-align:left;
- padding-left: .7em;
- padding-right: .7em;
- padding-top: .3em;
- padding-bottom: .3em;
- line-height: 1.3em;
-}
-
-span.errortext {
- color: #990000;
- font-size: .75em;
-}
+++ /dev/null
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <style type="text/css" title="styled">
- @import url('login.css');
- </style>
-
- <title>Example Organization WebLogin</title>
- </head>
- <body>
- <div id="page">
- <div id="head">
- <h1>Example Organization</h1>
- </div>
-
- <div id="main">
- <div id="content">
- <p>
- Please login:
- </p>
- <form method="post" action="j_security_check">
- <table class="login">
- <tr class="login">
- <td class="login"><strong>UID</strong></td>
- <td class="login"><input name="j_username" type="text" id="j_username" size="16" /></td></tr>
- <tr class="login">
- <td class="login">
- <strong>Password</strong>
- </td>
-
- <td class="login">
- <input name="j_password" type= "password" id="j_password" size= "16" /></td>
- <td class="login">
- <input name="Login" type="submit" id="Login" value="Login" />
- </td>
- </tr>
- </table>
- </form>
-
- </div>
- <div id="helptext">
- <p>
- The resource that you have attempted to access requires that you log in with your with your Example Organization UID.
- </p>
- </div>
-
- </div>
- </div>
- </body>
-</html>
+++ /dev/null
-body {
- background-color: #FFFFFF;
- font-family : Geneva, Arial, Helvetica, sans-serif;
- text-align: center;
- letter-spacing: 0px;
- color: black;
- text-align: left;
-}
-
-p {
- font-size: 10pt;
- margin-top: 20px;
- margin-bottom: 20px;
-}
-
-
-li {
-
- font-size: 10pt;
-}
-
-h1 {
- font-size: 14pt;
- font-weight: bold;
-}
-
-h2 {
- font-size: 12pt;
- font-weight: bold;
-}
-
-.error {
- font-size: 10pt;
- font-weight: bold;
-}
-
-img {
- margin-bottom: 15px;
-}
\ No newline at end of file
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "DTD/xhtml1-strict.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <link rel="stylesheet" type="text/css" href="<shibmlp styleSheet/>" />
- <title>Access System Failure</title>
-</head>
-
-<body>
-<div class="head">
-<img src="<shibmlp logoLocation/>" alt="Logo" />
-<h1>Inter-institutional Access System Failure</h1>
-</div>
-
-<p>The inter-institutional access system experienced a technical failure at
-<shibmlp now/></p>
-
-<p>Please email <a href="mailto:<shibmlp supportContact/>"><shibmlp supportContact/></a>
-and include the following error message:</p>
-
-<p class="error">Resource Manager failure at (<shibmlp requestURL/>)</p>
-
-<p><shibmlp errorText/></p>
-
-</body>
-</html>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "DTD/xhtml1-strict.dtd">
- <%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %>
- <%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %>
-
- <jsp:useBean id="logoLocation" scope="application" class="java.lang.String"/>
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <link rel="stylesheet" type="text/css" href="main.css" />
- <title>Shibboleth Protected Page</title>
-</head>
-
-<body>
-<div class="head">
-<img src="<bean:write name="logoLocation" />" alt="Logo" />
-<h1>Shibboleth Inter-institutional Access Control System</h1>
-</div>
-
-<p>This is an example of a page protected by the Shibboleth system.</p>
-
-<p>Because of the "require valid-user" rule, any user from a trusted
-Identity Provider is allowed access, once they establish a session using
-Shibboleth.</p>
-
-<p>Here are some pieces of information I can tell about you using
-the information Shibboleth gives me:<p>
-
-<p>
-<ul>
-<%
-String h = null;
-java.util.Enumeration headers = request.getHeaderNames();
-while (headers != null && headers.hasMoreElements()) {
- h = (String)headers.nextElement();
- if (!h.equals("Shib-Attributes") && !h.equals("Shib-Application-ID") && ((h.startsWith("Shib-") || h.equalsIgnoreCase("remote_user")))) {
-%>
- <li><%= h %> is: <b><%= request.getHeader(h) %></b></li>
-<%
- }
-%>
-<% } %>
-</ul>
-</p>
-
-<p>The raw SAML attribute assertion I received is below. If it makes sense to
-you, seek medical attention immediately.</p>
-<%
-String encoded=request.getHeader("Shib-Attributes");
-String a = "";
-if (encoded != null && !encoded.equals("")) {
- byte[] decoded=org.apache.xml.security.utils.Base64.decode(encoded.getBytes());
- a = new String(decoded);
-}
-%>
-
-<textarea wrap="soft" rows="20" cols="80"><%= a %></textarea>
-
-</body>
-</html>
+++ /dev/null
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE html
- PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
- "DTD/xhtml1-strict.dtd">
-
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
-<head>
- <link rel="stylesheet" type="text/css" href="<shibmlp styleSheet/>" />
- <title>Access System Failure</title>
-</head>
-
-<body>
-<div class="head">
-<img src="<shibmlp logoLocation/>" alt="Logo" />
-<h1>Inter-institutional Access System Failure</h1>
-</div>
-
-<p>The inter-institutional access system experienced a technical failure at
-<shibmlp now /><br>
-<shibmlp errorDesc /></p>
-
-<p>
-<shibmlpif originContactName>
-If the error reports itself as a problem with your identity provider,
-please contact your site's administrator, <shibmlp originContactName/>,
-at <a href="mailto:<shibmlp originContactEmail/>"><shibmlp originContactEmail/></a>.
-</shibmlpif>
-
-<shibmlpif originErrorURL>
-<br>If you need more assistance, you can try your helpdesk at
-<a href="<shibmlp originErrorURL/>"><shibmlp originErrorURL/></a>.
-</shibmlpif>
-</p>
-
-<p>Otherwise, please contact the application's administrator at
-<a href="mailto:<shibmlp supportContact/>"><shibmlp supportContact/></a>.</p>
-
-<p>Please include the following error message in any email:</p>
-<p class="error">SHIRE failure at (<shibmlp requestURL/>)</p>
-<p><shibmlp errorType/>: <shibmlp errorText/></p>
-
-</body>
-</html>
rem ---------------------------------------------------------------------------
rem Append to CLASSPATH
-rem
-rem $Id$
rem ---------------------------------------------------------------------------
rem Process the first argument
--- /dev/null
+#! /bin/bash
+
+declare LOCATION
+declare COMMAND
+declare JAVACMD
+declare LOCALCLASSPATH
+declare LIBDIR
+
+LOCATION=$0
+LOCATION=${LOCATION%/*}
+
+COMMAND=$0
+COMMAND=${COMMAND##*/}
+
+if [ -z "$JAVA_HOME" ] ; then
+ echo "ERROR: JAVA_HOME environment variable is not set."
+ exit
+else
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
+ # IBM's JDK on AIX uses strange locations for the executables
+ JAVACMD=$JAVA_HOME/jre/sh/java
+ else
+ JAVACMD=$JAVA_HOME/bin/java
+ fi
+fi
+
+if [ ! -x "$JAVACMD" ] ; then
+ echo "Error: JAVA_HOME is not defined correctly."
+ echo " We cannot execute $JAVACMD"
+ exit
+fi
+
+LOCALCLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/classes.zip
+
+# add in the dependency .jar files from the lib directory
+LIBS=$LOCATION/../lib/*.jar
+for i in $LIBS
+do
+ # if the directory is empty, then it will return the input string
+ # this is stupid, so case for it
+ if [ "$i" != "${LIBS}" ] ; then
+ LOCALCLASSPATH=$LOCALCLASSPATH:"$i"
+ fi
+done
+
+case "$COMMAND" in
+
+ aacli.sh)
+ "$JAVACMD" '-classpath' "$LOCALCLASSPATH" 'edu.internet2.middleware.shibboleth.common.attribute.AttributeAuthorityCLI' "$@"
+ ;;
+
+esac
\ No newline at end of file