The Shibboleth IdP V4 software will leave support on September 1, 2024.

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

Works with Eclipse 2019-06 or later

How To Run the Testbed in Eclipse with Jetty 10

1) Install Jetty (download and unpack jetty-distribution or jetty-home)

The version of Jetty should match the jetty.version property in the testbed POM (java-idp-testbed/pom.xml)


The Jetty directory should be set as the jetty.home system property in the Eclipse Launcher when running the testbed's Main.java, see Program Arguments below.

2) Clone the java-idp-testbed, java-identity-provider, and java-idp-jetty-base source code repositories as peers in the same directory :

git clone git@git.shibboleth.net:java-idp-testbed
git clone git@git.shibboleth.net:java-idp-jetty-base
git clone git@git.shibboleth.net:java-identity-provider

2b) Optionally, clone additional source code repositories :

git clone git@git.shibboleth.net:java-support
git clone git@git.shibboleth.net:spring-extensions
git clone git@git.shibboleth.net:java-opensaml

3) Import projects into Eclipse : File > Import > Maven > Existing Maven Projects 


4) Checkout the 10-testbed-eclipse branch of java-idp-jetty-base

5) Assemble third party dependencies by building the IdP WAR and removing IdP JARs :


cd java-identity-provider/idp-war
mvn clean package -DskipTests
rm target/idp-war-*/WEB-INF/lib/idp-*.jar

Optionally remove additional JARs :

rm target/idp-war-*/WEB-INF/lib/java-support-*.jar
rm target/idp-war-*/WEB-INF/lib/spring-extensions-*.jar
rm target/idp-war-*/WEB-INF/lib/opensaml-*.jar

6) Download logging and testbed dependencies and add to the Jetty server classpath :

cd java-idp-jetty-base/src/main/resources/jetty-base
java -jar $jetty.home/start.jar --create-files

7) Run the testbed in Eclipse as a Java Application :


In the idp-testbed project, right-click on idp-testbed-jetty-10.launch > Run As > Java Application 

8) Go to the testbed webapp : 


https://localhost:8443/index.html

Issues

Logging

You will probably want to change the root logging level from DEBUG  to INFO  in idp-conf/src/test/resources/logback-test.xml 

Example Eclipse Launcher

To create an Eclipse Launcher manually :

Use Eclipse Launcher "Program arguments" not "VM arguments"

Right-click on Main.java > Run As > Java Application 

Eclipse Launcher program arguments :

Program Arguments
-Djetty.home=<path to jetty-home> -Didp.home=classpath: -Didp.webflows=classpath*:/flows -Djava.io.tmpdir=tmp

Eclipse Launcher working directory :

Working Directory
${workspace_loc:idp-jetty-base/src/main/resources/jetty-base}

Example Eclipse Launcher :

 idp-testbed.launch
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<launchConfiguration type="org.eclipse.jdt.launching.localJavaApplication">
    <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
        <listEntry value="/idp-testbed/src/main/java/Main.java"/>
    </listAttribute>
    <listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
        <listEntry value="1"/>
    </listAttribute>
    <booleanAttribute key="org.eclipse.jdt.launching.ATTR_EXCLUDE_TEST_CODE" value="true"/>
    <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_CLASSPATH_ONLY_JAR" value="false"/>
    <booleanAttribute key="org.eclipse.jdt.launching.ATTR_USE_START_ON_FIRST_THREAD" value="true"/>
    <stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.m2e.launchconfig.classpathProvider"/>
    <stringAttribute key="org.eclipse.jdt.launching.MAIN_TYPE" value="Main"/>
    <stringAttribute key="org.eclipse.jdt.launching.PROGRAM_ARGUMENTS" value="-Djetty.home=/opt/jetty/jetty-home-10 -Didp.home=classpath: -Didp.webflows=classpath*:/flows -Djava.io.tmpdir=tmp" />
    <stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="idp-testbed"/>
    <stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.m2e.launchconfig.sourcepathProvider"/>
    <stringAttribute key="org.eclipse.jdt.launching.WORKING_DIRECTORY" value="${workspace_loc:idp-jetty-base/src/main/resources/jetty-base}"/>
</launchConfiguration>






  • No labels