<bean id="oidc1" class="org.pac4j.oidc.client.OidcClient">
<property name="id" value="clientid" />
<property name="secret" value="secret" />
<property name="discoveryUri" value="https://IdentityServer3/.well-known/openid-configuration" />
</bean>
When I do this the CAS server is not working anymore (I get a 404 when trying to access it via Tomcat)
Java is not my first language so I'm not sure if I'm missing something obvious but I would really appreciate some help with this.
With the properties you define and the pac4j-oidc dependency (assuming you run CAS server 4.2), it should work. The generated url: https://localhost:8433/cas/login?client_name=OidcClient&needs_client_redirection=true
is normal (the redirection does not happen directly for performance reasons, I won't enter into the details).
If you get a 404 when trying to acces Tomcat, it means an error has happend at startup and you must have something in your logs (catalina.log
, cas.log
...)
Thanks for the reply. I initially thought the URL is not generated properly.
I was using the master branch (which is version 4.3 I believe?).
When I'm accessing the https://cas-server:8433/cas/login?client_name=OidcClient&needs_client_redirection=true URL (localhost) in Chrome I get the following:
ERR_CONNECTION_REFUSED
Tried with other browsers as well (Firefox, IE) and I get Unable to connect.
Any ideas why this happens?
I also tried getting the 4.2.x branch but I could build it. I'm getting the following when running
mvn -e clean package:
[INFO] Error stacktraces are turned on.
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] CAS Pac4J / OAuth demo
[INFO] CAS Pac4J / OAuth client demo
[INFO] CAS Pac4J / OAuth server demo
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building CAS Pac4J / OAuth demo 4.2.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ cas-pac4j-oauth-demo -
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building CAS Pac4J / OAuth client demo 4.2.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[WARNING] The POM for org.jasig.cas:cas-server-webapp:war:4.2.0-RC3-SNAPSHOT is
missing, no dependency information available
[WARNING] The POM for org.jasig.cas:cas-server-core:jar:tests:4.2.0-RC3-SNAPSHOT
is missing, no dependency information available
[WARNING] The POM for org.jasig.cas:cas-server-support-pac4j:jar:4.2.0-RC3-SNAPS
HOT is missing, no dependency information available
[WARNING] The POM for org.jasig.cas:cas-server-integration-pac4j:jar:4.2.0-RC3-S
NAPSHOT is missing, no dependency information available
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] CAS Pac4J / OAuth demo ............................. SUCCESS [ 0.815 s]
[INFO] CAS Pac4J / OAuth client demo ...................... FAILURE [ 1.538 s]
[INFO] CAS Pac4J / OAuth server demo ...................... SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.527 s
[INFO] Finished at: 2016-03-31T11:43:35+00:00
[INFO] Final Memory: 8M/54M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal on project cas-pac4j-oauth-client-demo: Could not
resolve dependencies for project org.leleuj:cas-pac4j-oauth-client-demo:war:4.2
.0-SNAPSHOT: The following artifacts could not be resolved: org.jasig.cas:cas-se
rver-webapp:war:4.2.0-RC3-SNAPSHOT, org.jasig.cas:cas-server-core:jar:tests:4.2.
0-RC3-SNAPSHOT, org.jasig.cas:cas-server-support-pac4j:jar:4.2.0-RC3-SNAPSHOT, o
rg.jasig.cas:cas-server-integration-pac4j:jar:4.2.0-RC3-SNAPSHOT: Failure to fin
d org.jasig.cas:cas-server-webapp:war:4.2.0-RC3-SNAPSHOT in https://oss.sonatype
.org/content/repositories/snapshots was cached in the local repository, resoluti
on will not be reattempted until the update interval of sonatype-nexus-snapshots
has elapsed or updates are forced -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal o
n project cas-pac4j-oauth-client-demo: Could not resolve dependencies for projec
t org.leleuj:cas-pac4j-oauth-client-demo:war:4.2.0-SNAPSHOT: The following artif
acts could not be resolved: org.jasig.cas:cas-server-webapp:war:4.2.0-RC3-SNAPSH
OT, org.jasig.cas:cas-server-core:jar:tests:4.2.0-RC3-SNAPSHOT, org.jasig.cas:ca
s-server-support-pac4j:jar:4.2.0-RC3-SNAPSHOT, org.jasig.cas:cas-server-integrat
ion-pac4j:jar:4.2.0-RC3-SNAPSHOT: Failure to find org.jasig.cas:cas-server-webap
p:war:4.2.0-RC3-SNAPSHOT in https://oss.sonatype.org/content/repositories/snapsh
ots was cached in the local repository, resolution will not be reattempted until
the update interval of sonatype-nexus-snapshots has elapsed or updates are forc
at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDe
pendencies(LifecycleDependencyResolver.java:221)
at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resol
veProjectDependencies(LifecycleDependencyResolver.java:127)
at org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAr
eResolved(MojoExecutor.java:245)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor
.java:199)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor
.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor
.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje
ct(LifecycleModuleBuilder.java:116)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProje
ct(LifecycleModuleBuilder.java:80)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThre
adedBuilder.build(SingleThreadedBuilder.java:51)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(Lifecycl
eStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:863)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:288)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:199)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Laun
cher.java:289)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.jav
a:229)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(La
uncher.java:415)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:
Caused by: org.apache.maven.project.DependencyResolutionException: Could not res
olve dependencies for project org.leleuj:cas-pac4j-oauth-client-demo:war:4.2.0-S
NAPSHOT: The following artifacts could not be resolved: org.jasig.cas:cas-server
-webapp:war:4.2.0-RC3-SNAPSHOT, org.jasig.cas:cas-server-core:jar:tests:4.2.0-RC
3-SNAPSHOT, org.jasig.cas:cas-server-support-pac4j:jar:4.2.0-RC3-SNAPSHOT, org.j
asig.cas:cas-server-integration-pac4j:jar:4.2.0-RC3-SNAPSHOT: Failure to find or
g.jasig.cas:cas-server-webapp:war:4.2.0-RC3-SNAPSHOT in https://oss.sonatype.org
/content/repositories/snapshots was cached in the local repository, resolution w
ill not be reattempted until the update interval of sonatype-nexus-snapshots has
elapsed or updates are forced
at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(D
efaultProjectDependenciesResolver.java:211)
at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDe
pendencies(LifecycleDependencyResolver.java:195)
... 23 more
Caused by: org.eclipse.aether.resolution.DependencyResolutionException: The foll
owing artifacts could not be resolved: org.jasig.cas:cas-server-webapp:war:4.2.0
-RC3-SNAPSHOT, org.jasig.cas:cas-server-core:jar:tests:4.2.0-RC3-SNAPSHOT, org.j
asig.cas:cas-server-support-pac4j:jar:4.2.0-RC3-SNAPSHOT, org.jasig.cas:cas-serv
er-integration-pac4j:jar:4.2.0-RC3-SNAPSHOT: Failure to find org.jasig.cas:cas-s
erver-webapp:war:4.2.0-RC3-SNAPSHOT in https://oss.sonatype.org/content/reposito
ries/snapshots was cached in the local repository, resolution will not be reatte
mpted until the update interval of sonatype-nexus-snapshots has elapsed or updat
es are forced
at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDepen
dencies(DefaultRepositorySystem.java:384)
at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve(D
efaultProjectDependenciesResolver.java:205)
... 24 more
Caused by: org.eclipse.aether.resolution.ArtifactResolutionException: The follow
ing artifacts could not be resolved: org.jasig.cas:cas-server-webapp:war:4.2.0-R
C3-SNAPSHOT, org.jasig.cas:cas-server-core:jar:tests:4.2.0-RC3-SNAPSHOT, org.jas
ig.cas:cas-server-support-pac4j:jar:4.2.0-RC3-SNAPSHOT, org.jasig.cas:cas-server
-integration-pac4j:jar:4.2.0-RC3-SNAPSHOT: Failure to find org.jasig.cas:cas-ser
ver-webapp:war:4.2.0-RC3-SNAPSHOT in https://oss.sonatype.org/content/repositori
es/snapshots was cached in the local repository, resolution will not be reattemp
ted until the update interval of sonatype-nexus-snapshots has elapsed or updates
are forced
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(Defa
ultArtifactResolver.java:444)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtif
acts(DefaultArtifactResolver.java:246)
at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDepen
dencies(DefaultRepositorySystem.java:367)
... 25 more
Caused by: org.eclipse.aether.transfer.ArtifactNotFoundException: Failure to fin
d org.jasig.cas:cas-server-webapp:war:4.2.0-RC3-SNAPSHOT in https://oss.sonatype
.org/content/repositories/snapshots was cached in the local repository, resoluti
on will not be reattempted until the update interval of sonatype-nexus-snapshots
has elapsed or updates are forced
at org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.newExcepti
on(DefaultUpdateCheckManager.java:231)
at org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.checkArtif
act(DefaultUpdateCheckManager.java:206)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.gatherDownlo
ads(DefaultArtifactResolver.java:585)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownl
oads(DefaultArtifactResolver.java:503)
at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(Defa
ultArtifactResolver.java:421)
... 27 more
[ERROR]
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please rea
d the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyReso
lutionException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn -rf :cas-pac4j-oauth-client-demo
Is there a simple way to fix this?
Is 4.2 very different from 4.3 in regards to OpenID Connect integration?
Is it likely that 4.3 doesn't work because of a compatibility issue but 4.2 will work (given I manage to build it)?
Hi and thanks for the suggestions.
I got the 4.2.0 version from the 4.2.x branch and now it builds.
Now when I click the 'Login with Oidc' link it takes me to:
https://cas-server:8443/cas/login?client_name=OidcClient&needs_client_redirection=true
which displays the following:
CAS is Unavailable
There was an error trying to complete your request. Please notify your support desk or try again.
Apereo is a non-profit open source software governance foundation. The CAS software is an Apereo sponsored project and is freely downloadable and usable by anyone. However, Apereo does not operate the systems of anyone using the software and in most cases doesn't even know who is using it or how to contact them unless they are an active part of the Apereo community.
If you are having problems logging in using CAS, you will need to contact the IT staff or Help Desk of your organization for assistance.
We wish we could be more directly helpful to you.
Here is a screenshot: http://tinypic.com/r/2ihkpl3/9
I checked the logs and there's nothing to indicate an error.
Any ideas how to overcome this?
Ok, I cleaned all my logs, restarted and ran everything again. Now I found this in the localhost.log (tomcat/logs)
05-Apr-2016 11:24:50.772 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log Initializing Spring root WebApplicationContext
05-Apr-2016 11:25:22.427 INFO [localhost-startStop-1] org.apache.catalina.core.ApplicationContext.log Initializing Spring FrameworkServlet 'cas'
05-Apr-2016 11:28:37.693 SEVERE [http-nio-8443-exec-3] org.apache.catalina.core.StandardWrapperValve.invoke Servlet.service() for servlet [cas] in context with path [/cas] threw exception [Handler processing failed; nested exception is java.lang.NoClassDefFoundError: net/minidev/json/JSONAware] with root cause
java.lang.ClassNotFoundException: net.minidev.json.JSONAware
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1305)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1139)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2503)
at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:831)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1274)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1139)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at org.apache.catalina.loader.WebappClassLoaderBase.findClassInternal(WebappClassLoaderBase.java:2503)
at org.apache.catalina.loader.WebappClassLoaderBase.findClass(WebappClassLoaderBase.java:831)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1274)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1139)
at org.pac4j.oidc.client.OidcClient.internalInit(OidcClient.java:241)
at org.pac4j.core.util.InitializableWebObject.init(InitializableWebObject.java:39)
at org.pac4j.core.client.IndirectClient.getCredentials(IndirectClient.java:177)
at org.jasig.cas.support.pac4j.web.flow.ClientAction.doExecute(ClientAction.java:139)
at org.springframework.webflow.action.AbstractAction.execute(AbstractAction.java:188)
at org.springframework.webflow.execution.ActionExecutor.execute(ActionExecutor.java:51)
at org.springframework.webflow.action.EvaluateAction.doExecute(EvaluateAction.java:77)
at org.springframework.webflow.action.AbstractAction.execute(AbstractAction.java:188)
at org.springframework.webflow.execution.AnnotatedAction.execute(AnnotatedAction.java:145)
at org.springframework.webflow.execution.ActionExecutor.execute(ActionExecutor.java:51)
at org.springframework.webflow.engine.ActionState.doEnter(ActionState.java:101)
at org.springframework.webflow.engine.State.enter(State.java:194)
at org.springframework.webflow.engine.Flow.start(Flow.java:527)
at org.springframework.webflow.engine.impl.FlowExecutionImpl.start(FlowExecutionImpl.java:368)
at org.springframework.webflow.engine.impl.FlowExecutionImpl.start(FlowExecutionImpl.java:223)
at org.springframework.webflow.executor.FlowExecutorImpl.launchExecution(FlowExecutorImpl.java:140)
at org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:238)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:622)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.jasig.cas.security.ResponseHeadersEnforcementFilter.doFilter(ResponseHeadersEnforcementFilter.java:227)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.jasig.cas.security.RequestParameterPolicyEnforcementFilter.doFilter(RequestParameterPolicyEnforcementFilter.java:250)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.jasig.inspektr.common.web.ClientInfoThreadLocalFilter.doFilter(ClientInfoThreadLocalFilter.java:62)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Unknown Source)
Is this a configuration error or there's some dependency missing?
Indeed, it seems there is a missing jar, but I've never heard about this class (Googling a little, it seems to come from the json-simple-1.1.jar).
Can you do a mvn dependency:tree
? Maybe you'll some conflict...
Here's the output:
[INFO] Scanning for projects...
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO]
[INFO] CAS Pac4J / OAuth demo
[INFO] CAS Pac4J / OAuth client demo
[INFO] CAS Pac4J / OAuth server demo
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building CAS Pac4J / OAuth demo 4.2.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ cas-pac4j-oauth-demo ---
[INFO] org.leleuj:cas-pac4j-oauth-demo:pom:4.2.0-SNAPSHOT
[INFO] - javax.servlet:javax.servlet-api:jar:3.0.1:runtime
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building CAS Pac4J / OAuth client demo 4.2.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
Downloading: https://raw.github.com/fernandezpablo85/scribe-java/mvn-repo/com/nimbusds/nimbus-jose-jwt/maven-metadata.xml
[INFO]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ cas-pac4j-oauth-client-demo ---
[INFO] org.leleuj:cas-pac4j-oauth-client-demo:war:4.2.0-SNAPSHOT
[INFO] +- org.jasig.cas:cas-server-webapp:war:4.2.0:runtime
[INFO] +- org.jasig.cas:cas-server-core:test-jar:tests:4.2.0:compile
[INFO] | +- org.hibernate:hibernate-core:jar:5.0.3.Final:compile
[INFO] | | +- org.jboss.logging:jboss-logging:jar:3.3.0.Final:compile
[INFO] | | +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final:compile
[INFO] | | +- antlr:antlr:jar:2.7.7:compile
[INFO] | | +- org.jboss:jandex:jar:2.0.0.CR1:compile
[INFO] | | +- org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1.1:compile
[INFO] | | +- dom4j:dom4j:jar:1.6.1:compile
[INFO] | | - org.hibernate.common:hibernate-commons-annotations:jar:5.0.0.Final:compile
[INFO] | +- org.jasig.cas:cas-server-core-authentication:jar:4.2.0:compile
[INFO] | | +- org.jasig.cas:cas-server-core-api-services:jar:4.2.0:compile
[INFO] | | +- org.jasig.cas:cas-server-core-util:jar:4.2.0:compile
[INFO] | | | +- org.bitbucket.b_c:jose4j:jar:0.4.4:compile
[INFO] | | | +- org.jasig.cas:cas-server-core-api-util:jar:4.2.0:compile
[INFO] | | | - org.apache.httpcomponents:httpclient:jar:4.5.1:compile
[INFO] | | | - org.apache.httpcomponents:httpcore:jar:4.4.3:compile
[INFO] | | +- org.jasig.cas:cas-server-core-api-ticket:jar:4.2.0:compile
[INFO] | | - org.springframework.webflow:spring-binding:jar:2.4.2.RELEASE:compile
[INFO] | | - opensymphony:ognl:jar:2.6.11:compile
[INFO] | +- org.apache.logging.log4j:log4j-api:jar:2.5:runtime
[INFO] | +- org.apache.logging.log4j:log4j-core:jar:2.5:runtime
[INFO] | +- org.jasig.cas:cas-server-core-tickets:jar:4.2.0:compile
[INFO] | | +- org.reflections:reflections:jar:0.9.10:compile
[INFO] | | | +- org.javassist:javassist:jar:3.19.0-GA:compile
[INFO] | | | - com.google.code.findbugs:annotations:jar:2.0.1:compile
[INFO] | | - org.quartz-scheduler:quartz:jar:2.2.1:compile
[INFO] | +- org.jasig.service.persondir:person-directory-impl:jar:1.7.0:compile
[INFO] | | +- aopalliance:aopalliance:jar:1.0:compile
[INFO] | | +- com.sun.xml.bind:jaxb-impl:jar:2.2.7:compile
[INFO] | | | +- com.sun.xml.bind:jaxb-core:jar:2.2.7:compile
[INFO] | | | | +- javax.xml.bind:jaxb-api:jar:2.2.7:compile
[INFO] | | | | - com.sun.istack:istack-commons-runtime:jar:2.16:compile
[INFO] | | | - com.sun.xml.fastinfoset:FastInfoset:jar:1.2.12:compile
[INFO] | | | - javax.xml.bind:jsr173_api:jar:1.0:compile
[INFO] | | - org.jasig.service.persondir:person-directory-api:jar:1.7.0:compile
[INFO] | +- org.apache.commons:commons-lang3:jar:3.4:compile
[INFO] | +- commons-jexl:commons-jexl:jar:1.1:runtime
[INFO] | +- org.jasig.cas:cas-server-core-services:jar:4.2.0:compile
[INFO] | | +- org.springframework:spring-orm:jar:4.2.3.RELEASE:compile
[INFO] | | - org.springframework:spring-jdbc:jar:4.2.3.RELEASE:compile
[INFO] | +- joda-time:joda-time:jar:2.9:compile
[INFO] | +- org.apache.logging.log4j:log4j-slf4j-impl:jar:2.5:runtime
[INFO] | +- org.jasig.inspektr:inspektr-audit:jar:1.3.GA:compile
[INFO] | | - org.jasig.inspektr:inspektr-common:jar:1.3.GA:compile
[INFO] | +- org.springframework:spring-beans:jar:4.2.3.RELEASE:compile
[INFO] | +- org.aspectj:aspectjrt:jar:1.8.6:compile
[INFO] | +- org.jasig.cas:cas-server-core-validation:jar:4.2.0:compile
[INFO] | | +- org.jasig.cas:cas-server-core-api-protocol:jar:4.2.0:compile
[INFO] | | +- org.jasig.cas:cas-server-core-api-validation:jar:4.2.0:compile
[INFO] | | - org.jasig.cas:cas-server-core-api-authentication:jar:4.2.0:compile
[INFO] | +- org.slf4j:slf4j-api:jar:1.7.12:compile
[INFO] | +- javax.validation:validation-api:jar:1.1.0.Final:compile
[INFO] | +- org.springframework:spring-context-support:jar:4.2.3.RELEASE:compile
[INFO] | +- org.apache.logging.log4j:log4j-jcl:jar:2.5:runtime
[INFO] | | - commons-logging:commons-logging:jar:1.2:compile
[INFO] | +- org.jasig.inspektr:inspektr-aspects:jar:1.3.GA:compile
[INFO] | +- org.springframework:spring-core:jar:4.2.3.RELEASE:compile
[INFO] | +- commons-io:commons-io:jar:2.4:compile
[INFO] | +- org.aspectj:aspectjweaver:jar:1.8.6:compile
[INFO] | +- commons-codec:commons-codec:jar:1.10:compile
[INFO] | +- io.dropwizard.metrics:metrics-core:jar:3.1.2:compile
[INFO] | +- org.jasig.cas:cas-server-core-events:jar:4.2.0:compile
[INFO] | +- org.apache.shiro:shiro-core:jar:1.2.4:compile
[INFO] | | - commons-beanutils:commons-beanutils:jar:1.8.3:compile
[INFO] | +- org.glassfish.web:javax.el:jar:2.2.6:runtime
[INFO] | +- org.springframework:spring-webmvc:jar:4.2.3.RELEASE:compile
[INFO] | | +- org.springframework:spring-expression:jar:4.2.3.RELEASE:compile
[INFO] | | - org.springframework:spring-web:jar:4.2.3.RELEASE:compile
[INFO] | +- org.springframework:spring-tx:jar:4.2.3.RELEASE:compile
[INFO] | +- org.springframework:spring-context:jar:4.2.3.RELEASE:compile
[INFO] | | - org.springframework:spring-aop:jar:4.2.3.RELEASE:compile
[INFO] | +- io.dropwizard.metrics:metrics-annotation:jar:3.1.2:compile
[INFO] | +- com.google.guava:guava:jar:18.0:compile
[INFO] | - org.slf4j:jul-to-slf4j:jar:1.7.12:compile
[INFO] +- org.jasig.cas:cas-server-support-pac4j:jar:4.2.0:compile
[INFO] | +- org.pac4j:pac4j-config:jar:1.8.2:compile
[INFO] | | - org.pac4j:pac4j-oidc:jar:1.8.2:compile
[INFO] | | - com.nimbusds:oauth2-oidc-sdk:jar:5.0-alpha15:compile
[INFO] | | +- javax.mail:mail:jar:1.4.7:compile
[INFO] | | | - javax.activation:activation:jar:1.1:compile
[INFO] | | +- net.jcip:jcip-annotations:jar:1.0:compile
[INFO] | | +- com.nimbusds:lang-tag:jar:1.4:compile
[INFO] | | - com.nimbusds:nimbus-jose-jwt:jar:4.13.1:compile (version selected from constraint [4.10,))
[INFO] | +- org.pac4j:pac4j-core:jar:1.8.2:compile
[INFO] | +- org.jasig.cas:cas-server-integration-pac4j-core:jar:4.2.0:compile
[INFO] | - org.jasig.cas:cas-server-core-web:jar:4.2.0:compile
[INFO] | +- org.springframework.webflow:spring-webflow:jar:2.4.2.RELEASE:compile
[INFO] | | - org.springframework.webflow:spring-js:jar:2.4.2.RELEASE:compile
[INFO] | | - org.springframework.webflow:spring-js-resources:jar:2.4.2.RELEASE:compile
[INFO] | +- org.jasig.cas:cas-server-core-api-logout:jar:4.2.0:compile
[INFO] | - org.jasig.cas:cas-server-core-api-web:jar:4.2.0:compile
[INFO] | - org.jasig.cas:cas-server-core-api:jar:4.2.0:compile
[INFO] +- org.jasig.cas:cas-server-integration-pac4j:jar:4.2.0:compile
[INFO] +- org.pac4j:pac4j-oauth:jar:1.8.2:compile
[INFO] | +- org.scribe:scribe:jar:1.3.6:compile
[INFO] | - com.fasterxml.jackson.core:jackson-databind:jar:2.5.1:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.5.0:compile
[INFO] | - com.fasterxml.jackson.core:jackson-core:jar:2.5.1:compile
[INFO] +- org.pac4j:pac4j-cas:jar:1.8.2:compile
[INFO] | +- org.jasig.cas.client:cas-client-core:jar:3.4.1:compile
[INFO] | - org.jasig.cas.client:cas-client-support-saml:jar:3.4.1:compile
[INFO] +- org.pac4j:pac4j-openid:jar:1.8.2:compile
[INFO] | +- org.openid4java:openid4java:jar:0.9.8:compile
[INFO] | | +- net.sourceforge.nekohtml:nekohtml:jar:1.9.10:compile
[INFO] | | +- com.google.inject:guice:jar:2.0:compile
[INFO] | | - xerces:xercesImpl:jar:2.8.1:compile
[INFO] | - org.slf4j:jcl-over-slf4j:jar:1.7.12:compile
[INFO] +- org.pac4j:pac4j-http:jar:1.8.2:compile
[INFO] +- org.pac4j:pac4j-saml:jar:1.8.2:compile
[INFO] | +- org.opensaml:opensaml-core:jar:3.1.1:compile
[INFO] | +- net.shibboleth.utilities:java-support:jar:7.1.1:compile
[INFO] | | - com.google.code.findbugs:jsr305:jar:3.0.0:compile
[INFO] | +- org.opensaml:opensaml-saml-api:jar:3.1.1:compile
[INFO] | | - org.opensaml:opensaml-storage-api:jar:3.1.1:compile
[INFO] | +- org.opensaml:opensaml-saml-impl:jar:3.1.1:compile
[INFO] | | - org.opensaml:opensaml-soap-impl:jar:3.1.1:compile
[INFO] | +- org.opensaml:opensaml-soap-api:jar:3.1.1:compile
[INFO] | +- org.opensaml:opensaml-xmlsec-api:jar:3.1.1:compile
[INFO] | +- org.opensaml:opensaml-security-api:jar:3.1.1:compile
[INFO] | | - org.apache.santuario:xmlsec:jar:2.0.3:compile
[INFO] | | - org.codehaus.woodstox:woodstox-core-asl:jar:4.4.1:compile
[INFO] | | +- javax.xml.stream:stax-api:jar:1.0-2:compile
[INFO] | | - org.codehaus.woodstox:stax2-api:jar:3.1.4:compile
[INFO] | +- org.opensaml:opensaml-security-impl:jar:3.1.1:compile
[INFO] | +- org.opensaml:opensaml-profile-api:jar:3.1.1:compile
[INFO] | +- org.opensaml:opensaml-profile-impl:jar:3.1.1:compile
[INFO] | +- org.opensaml:opensaml-messaging-api:jar:3.1.1:compile
[INFO] | +- org.opensaml:opensaml-messaging-impl:jar:3.1.1:compile
[INFO] | +- org.opensaml:opensaml-xmlsec-impl:jar:3.1.1:compile
[INFO] | +- org.cryptacular:cryptacular:jar:1.0:compile
[INFO] | +- xalan:xalan:jar:2.7.2:compile
[INFO] | | - xalan:serializer:jar:2.7.2:compile
[INFO] | | - xml-apis:xml-apis:jar:1.3.04:compile
[INFO] | +- org.apache.velocity:velocity:jar:1.7:compile
[INFO] | | +- commons-collections:commons-collections:jar:3.2.1:compile
[INFO] | | - commons-lang:commons-lang:jar:2.4:compile
[INFO] | +- net.shibboleth.ext:spring-extensions:jar:5.1.1:compile
[INFO] | - org.opensaml:xmltooling:jar:1.4.4:compile
[INFO] | - ca.juliusdavies:not-yet-commons-ssl:jar:0.3.9:compile
[INFO] | - commons-httpclient:commons-httpclient:jar:3.0:compile
[INFO] | - junit:junit:jar:3.8.1:compile
[INFO] +- org.slf4j:slf4j-simple:jar:1.7.10:compile
[INFO] - javax.servlet:javax.servlet-api:jar:3.0.1:runtime
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building CAS Pac4J / OAuth server demo 4.2.0-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ cas-pac4j-oauth-server-demo ---
[INFO] org.leleuj:cas-pac4j-oauth-server-demo:war:4.2.0-SNAPSHOT
[INFO] +- org.jasig.cas:cas-server-webapp:war:4.2.0:runtime
[INFO] +- org.jasig.cas:cas-server-support-oauth:jar:4.2.0:compile
[INFO] | +- org.glassfish.web:javax.el:jar:2.2.6:runtime
[INFO] | +- org.hibernate:hibernate-validator:jar:5.2.2.Final:runtime
[INFO] | | - com.fasterxml:classmate:jar:1.1.0:runtime
[INFO] | +- org.apache.logging.log4j:log4j-jcl:jar:2.5:runtime
[INFO] | | - commons-logging:commons-logging:jar:1.2:runtime
[INFO] | +- org.jasig.inspektr:inspektr-aspects:jar:1.3.GA:compile
[INFO] | +- org.jasig.cas:cas-server-support-oauth-core:jar:4.2.0:compile
[INFO] | | - org.jasig.cas:cas-server-core-services:jar:4.2.0:compile
[INFO] | | +- commons-io:commons-io:jar:2.4:compile
[INFO] | | +- org.springframework:spring-orm:jar:4.2.3.RELEASE:compile
[INFO] | | | +- org.springframework:spring-beans:jar:4.2.3.RELEASE:compile
[INFO] | | | - org.springframework:spring-tx:jar:4.2.3.RELEASE:compile
[INFO] | | +- org.hibernate:hibernate-core:jar:5.0.3.Final:compile
[INFO] | | | +- org.jboss.logging:jboss-logging:jar:3.3.0.Final:compile
[INFO] | | | +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final:compile
[INFO] | | | +- antlr:antlr:jar:2.7.7:compile
[INFO] | | | +- org.jboss:jandex:jar:2.0.0.CR1:compile
[INFO] | | | +- org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1.1:compile
[INFO] | | | +- dom4j:dom4j:jar:1.6.1:compile
[INFO] | | | - org.hibernate.common:hibernate-commons-annotations:jar:5.0.0.Final:compile
[INFO] | | +- org.jasig.cas:cas-server-core-events:jar:4.2.0:compile
[INFO] | | +- org.reflections:reflections:jar:0.9.10:compile
[INFO] | | | +- org.javassist:javassist:jar:3.19.0-GA:compile
[INFO] | | | - com.google.code.findbugs:annotations:jar:2.0.1:compile
[INFO] | | +- org.springframework:spring-jdbc:jar:4.2.3.RELEASE:compile
[INFO] | | - org.quartz-scheduler:quartz:jar:2.2.1:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-databind:jar:2.6.1:compile
[INFO] | | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.6.0:compile
[INFO] | | - com.fasterxml.jackson.core:jackson-core:jar:2.6.1:compile
[INFO] | +- org.apache.logging.log4j:log4j-slf4j-impl:jar:2.5:runtime
[INFO] | +- org.aspectj:aspectjweaver:jar:1.8.6:compile
[INFO] | +- org.apache.logging.log4j:log4j-api:jar:2.5:runtime
[INFO] | +- org.apache.logging.log4j:log4j-core:jar:2.5:runtime
[INFO] | +- org.aspectj:aspectjrt:jar:1.8.6:compile
[INFO] | +- org.slf4j:slf4j-api:jar:1.7.12:compile
[INFO] | - org.slf4j:jul-to-slf4j:jar:1.7.12:runtime
[INFO] +- org.jasig.cas:cas-server-support-saml:jar:4.2.0:compile
[INFO] | +- org.opensaml:opensaml-saml-api:jar:3.1.1:compile
[INFO] | | +- org.opensaml:opensaml-xmlsec-api:jar:3.1.1:compile
[INFO] | | +- org.opensaml:opensaml-messaging-api:jar:3.1.1:compile
[INFO] | | +- org.opensaml:opensaml-profile-api:jar:3.1.1:compile
[INFO] | | - org.opensaml:opensaml-storage-api:jar:3.1.1:compile
[INFO] | +- xml-apis:xml-apis:jar:1.4.01:runtime
[INFO] | +- org.opensaml:opensaml-saml-impl:jar:3.1.1:compile
[INFO] | | +- org.opensaml:opensaml-security-impl:jar:3.1.1:compile
[INFO] | | +- org.opensaml:opensaml-xmlsec-impl:jar:3.1.1:compile
[INFO] | | +- org.opensaml:opensaml-soap-impl:jar:3.1.1:compile
[INFO] | | - org.apache.velocity:velocity:jar:1.7:compile
[INFO] | | +- commons-collections:commons-collections:jar:3.2.1:compile
[INFO] | | - commons-lang:commons-lang:jar:2.4:compile
[INFO] | +- net.shibboleth.idp:idp-profile-spring:jar:3.1.1:compile
[INFO] | | +- net.shibboleth.idp:idp-core:jar:3.1.1:compile
[INFO] | | | - com.beust:jcommander:jar:1.47:compile
[INFO] | | +- net.shibboleth.idp:idp-saml-api:jar:3.1.1:compile
[INFO] | | | +- net.shibboleth.idp:idp-profile-api:jar:3.1.1:compile
[INFO] | | | +- net.shibboleth.idp:idp-attribute-resolver-api:jar:3.1.1:compile
[INFO] | | | +- net.shibboleth.idp:idp-session-api:jar:3.1.1:compile
[INFO] | | | | - javax.json:javax.json-api:jar:1.0:compile
[INFO] | | | +- net.shibboleth.idp:idp-authn-api:jar:3.1.1:compile
[INFO] | | | | - org.ldaptive:ldaptive:jar:1.0.6:compile
[INFO] | | | - net.shibboleth.idp:idp-attribute-api:jar:3.1.1:compile
[INFO] | | +- net.shibboleth.idp:idp-saml-impl:jar:3.1.1:compile
[INFO] | | | - org.glassfish:javax.json:jar:1.0.4:runtime
[INFO] | | +- net.shibboleth.idp:idp-profile-impl:jar:3.1.1:compile
[INFO] | | | - net.shibboleth.idp:idp-attribute-filter-api:jar:3.1.1:compile
[INFO] | | +- net.shibboleth.ext:spring-extensions:jar:5.1.1:compile
[INFO] | | | - org.apache.httpcomponents:httpclient-cache:jar:4.3.6:compile
[INFO] | | +- org.opensaml:opensaml-security-api:jar:3.1.1:compile
[INFO] | | | +- org.apache.santuario:xmlsec:jar:2.0.3:compile
[INFO] | | | | - org.codehaus.woodstox:woodstox-core-asl:jar:4.4.1:compile
[INFO] | | | | +- javax.xml.stream:stax-api:jar:1.0-2:compile
[INFO] | | | | - org.codehaus.woodstox:stax2-api:jar:3.1.4:compile
[INFO] | | | - org.cryptacular:cryptacular:jar:1.0:compile
[INFO] | | +- net.shibboleth.idp:idp-schema:jar:3.1.1:runtime
[INFO] | | +- com.google.code.findbugs:jsr305:jar:3.0.0:compile
[INFO] | | +- com.google.guava:guava:jar:18.0:compile
[INFO] | | +- org.codehaus.janino:janino:jar:2.7.8:compile
[INFO] | | | - org.codehaus.janino:commons-compiler:jar:2.7.8:compile
[INFO] | | - javax.mail:mail:jar:1.4.7:compile
[INFO] | | - javax.activation:activation:jar:1.1:compile
[INFO] | +- org.jasig.cas:cas-server-core-authentication:jar:4.2.0:compile
[INFO] | | +- org.jasig.cas:cas-server-core-api-services:jar:4.2.0:compile
[INFO] | | | +- joda-time:joda-time:jar:2.9:compile
[INFO] | | | +- org.jasig.cas:cas-server-core-api-authentication:jar:4.2.0:compile
[INFO] | | | - org.apache.commons:commons-lang3:jar:3.4:compile
[INFO] | | +- org.jasig.inspektr:inspektr-audit:jar:1.3.GA:compile
[INFO] | | | - org.jasig.inspektr:inspektr-common:jar:1.3.GA:compile
[INFO] | | +- org.jasig.cas:cas-server-core-util:jar:4.2.0:compile
[INFO] | | | +- org.bitbucket.b_c:jose4j:jar:0.4.4:compile
[INFO] | | | +- org.apache.shiro:shiro-core:jar:1.2.4:compile
[INFO] | | | | - commons-beanutils:commons-beanutils:jar:1.8.3:compile
[INFO] | | | - org.jasig.cas:cas-server-core-api-util:jar:4.2.0:compile
[INFO] | | +- org.jasig.service.persondir:person-directory-impl:jar:1.7.0:compile
[INFO] | | | +- aopalliance:aopalliance:jar:1.0:compile
[INFO] | | | +- com.sun.xml.bind:jaxb-impl:jar:2.2.7:compile
[INFO] | | | | +- com.sun.xml.bind:jaxb-core:jar:2.2.7:compile
[INFO] | | | | | +- javax.xml.bind:jaxb-api:jar:2.2.7:compile
[INFO] | | | | | - com.sun.istack:istack-commons-runtime:jar:2.16:compile
[INFO] | | | | - com.sun.xml.fastinfoset:FastInfoset:jar:1.2.12:compile
[INFO] | | | | - javax.xml.bind:jsr173_api:jar:1.0:compile
[INFO] | | | - org.jasig.service.persondir:person-directory-api:jar:1.7.0:compile
[INFO] | | +- org.jasig.cas:cas-server-core-api-ticket:jar:4.2.0:compile
[INFO] | | +- org.springframework.webflow:spring-binding:jar:2.4.2.RELEASE:compile
[INFO] | | | - opensymphony:ognl:jar:2.6.11:compile
[INFO] | | - io.dropwizard.metrics:metrics-annotation:jar:3.1.2:compile
[INFO] | +- jdom:jdom:jar:1.0:compile
[INFO] | +- org.opensaml:opensaml-soap-api:jar:3.1.1:compile
[INFO] | +- net.shibboleth.utilities:java-support:jar:7.1.1:compile
[INFO] | +- org.jasig.cas:cas-server-core-web:jar:4.2.0:compile
[INFO] | | +- org.springframework.webflow:spring-webflow:jar:2.4.2.RELEASE:compile
[INFO] | | | - org.springframework.webflow:spring-js:jar:2.4.2.RELEASE:compile
[INFO] | | | - org.springframework.webflow:spring-js-resources:jar:2.4.2.RELEASE:compile
[INFO] | | +- org.springframework:spring-webmvc:jar:4.2.3.RELEASE:compile
[INFO] | | | - org.springframework:spring-expression:jar:4.2.3.RELEASE:compile
[INFO] | | +- org.springframework:spring-context-support:jar:4.2.3.RELEASE:compile
[INFO] | | +- org.jasig.cas:cas-server-core-api-logout:jar:4.2.0:compile
[INFO] | | +- org.springframework:spring-context:jar:4.2.3.RELEASE:compile
[INFO] | | | - org.springframework:spring-aop:jar:4.2.3.RELEASE:compile
[INFO] | | +- org.jasig.cas:cas-server-core-api-web:jar:4.2.0:compile
[INFO] | | | - org.jasig.cas:cas-server-core-api:jar:4.2.0:compile
[INFO] | | +- org.springframework:spring-web:jar:4.2.3.RELEASE:compile
[INFO] | | - org.pac4j:pac4j-core:jar:1.8.2:compile
[INFO] | +- org.jasig.cas:cas-server-webapp-validation:jar:4.2.0:compile
[INFO] | | +- org.springframework:spring-core:jar:4.2.3.RELEASE:compile
[INFO] | | +- org.jasig.cas:cas-server-core-validation:jar:4.2.0:compile
[INFO] | | | +- org.jasig.cas:cas-server-core-api-protocol:jar:4.2.0:compile
[INFO] | | | - org.jasig.cas:cas-server-core-api-validation:jar:4.2.0:compile
[INFO] | | - org.jasig.cas:cas-server-core-tickets:jar:4.2.0:compile
[INFO] | +- org.opensaml:opensaml-core:jar:3.1.1:compile
[INFO] | - javax.validation:validation-api:jar:1.1.0.Final:compile
[INFO] +- org.slf4j:slf4j-simple:jar:1.7.10:compile
[INFO] - javax.servlet:javax.servlet-api:jar:3.0.1:runtime
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary:
[INFO]
[INFO] CAS Pac4J / OAuth demo ............................. SUCCESS [ 7.846 s]
[INFO] CAS Pac4J / OAuth client demo ...................... SUCCESS [ 15.456 s]
[INFO] CAS Pac4J / OAuth server demo ...................... SUCCESS [ 2.754 s]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 29.530 s
[INFO] Finished at: 2016-04-05T13:33:58+00:00
[INFO] Final Memory: 22M/247M
[INFO] ------------------------------------------------------------------------
It doesn't seem to be any conflict.
Is there a way to manually add that dependency? (like editing the POM file)
Also, I tried add the following dependency to the pom.xml file
<dependency>
<groupId>net.minidev</groupId>
<artifactId>json-smart</artifactId>
<version>2.2.1</version>
</dependency>
Still no luck... Any suggestions moving forward?
I managed to move forward but ran into some other problems.
First of all, I had to manually copy 2 jars to the tomcat/webapps/cas/web-inf/lib to get rid of the exceptions. These are:
http://mvnrepository.com/artifact/net.minidev/json-smart/2.2.1
http://mvnrepository.com/artifact/net.minidev/asm/1.0.2
Next, CAS would redirect me to the IdentityServer but this will not recognize it. This is the URL which CAS constructed:
https://IdentityServer3/connect/authorize?response_type=code&client_id=cas.server.code&redirect_uri=https%3A%2F%2Flocalhost%3A8443%2Fcas%2Flogin%3Fclient_name%3DOidcClient&scope=openid+profile+email&state=40YD5Q6cKpL1B02Z6fhOhrEmD4Z3toV9SvLqTs1KVvU&display=page
At a closer look, I noticed that the redirect_uri is wrong because it ends with a '?' and there's no '&' before the client_name parameter. I replaced the '?' with '&' and then the IdentityServer recognized the client and took me to the login page.
Next, I logged in and then was redirected back to the CAS login page. However, I doesn't look I have been logged into CAS as well although the URI contains the authorization code and state:
https://localhost:8443/cas/login?code=366b5f4fe9c6ba4144462d8e728e62a1&state=40YD5Q6cKpL1B02Z6fhOhrEmD4Z3toV9SvLqTs1KVvU&session_state=ROXwf6MHLTO-DfD4xL97DGiBD9EyXAvMIRVAUAL5h7M.5fe5abfc8b3fb7baea05111402014b5d
Here is a screenshot as well: http://i68.tinypic.com/245hbev.png
My questions are:
What would be the best way to add those dependencies to during build? So that the war file has them already?
Is the '?' appension at the end of the redirect_uri a bug? If it is, what would be a fair estimation for a fix?
After logging-in the IdentityServer redirects back to CAS with the authorization code but it seems that CAS stops there. I was expecting at this point that CAS would exchange that code for an authentication_token which would then be used to get the user details from the user_endpoint. Is this correct?
My IdentityServer configuration is:
ClientId = "cas.server.code",
ClientName = "OidcClient",
Flow = Flows.AuthorizationCode
Also, does the OidcClient support the hybrid flow as well? If yes, how can it be configured?
Thanks.
The dependencies should be defined as you did for your Maven overlay artifact and found as they are in the Maven central repository. Are you sure you have access to it?
About the redirect_uri, it should be https://localhost:8443/cas/login?client_name=OidcClient So it seems normal to have a ?
and not a &
and the url should be url encoded
Yes, this is what should happen: don't you have anything in your logs about an error?
No, the hybrid flow is not supported yet. An issue is opened on pac4j for that: https://github.com/pac4j/pac4j/issues/492
2 The problem is that inside the CAS generated url towards IdentityServer, between redirect_uri and client_name parameters there should be an '&', otherwise the whole URL is broken. So it's not really a problem that it appends an encoded '?' at the end of the redirect_uri value but it is a problem that the '&' is missing after the redirect_uri parameter because then the client_name parameter is ignored.
Currently it is:
...&redirect_uri=EncodedValueclient_name=Value...
It should be:
...&redirect_uri=EncodedValue&client_name=Value&...
LATER EDIT:
I think I understand what you mean now. The client_name is actually part of the redirect_uri value.
I'm testing this now. Ignore my previous comment for now.
I managed to login using the IdentityServer.
The message is "You, OidcProfile#1, have successfully logged into the Central Authentication Service."
Is the username is retrieved as well? I was expecting to see my username instead of the OidcProfile#1. The username is important because I use CAS to login into a system which needs it to match it with it's internal users.
Indeed, the client_name
is part of the redirect_uri
.
The username is the "typed identifier" (pac4j terminology), it means you get the technical identifier from your OpenID Connect provider with the profile type as the prefix.
That said, you can control the generated username. See: http://jasig.github.io/cas/4.2.x/integration/Delegate-Authentication.html, cas.pac4j.client.authn.typedidused=true
Thanks for the update.
I added the following to the cas.properties:
cas.pac4j.client.authn.typedidused=true
but the logged in message is the same: "You, OidcProfile#1, have successfully logged into the Central Authentication Service." Is OidcProfile#1 the username in this case?
You mentioned that I can control the generated username, can I specify the claim name from where CAS should get it? Or is this done automatically?
As I mentioned this is important because the username needs to exist in another system which uses CAS the the identity provider. So basically what I'm trying to accomplish is:
Authentication flow:
my system -> cas -> identityserver3
Information flow (after login)
identityserver3 (send username) -> cas (send username) -> my system (use username)
Also, I added the missing dependencies to the pom.xml file as follows:
<dependency>
<groupId>net.minidev</groupId>
<artifactId>json-smart</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>net.minidev</groupId>
<artifactId>asm</artifactId>
<version>1.0.2</version>
</dependency>
However, they are still missing from the generated .war file and the Oidc cliient won't work without them. If I copy them manually then it works.
Update:
I noticed that the technical identifier CAS uses it's actually the so-called 'Subject Identifier'. I set that with the same value as the 'Username' and used:
cas.pac4j.client.authn.typedidused=false
It seems to work fine. Just wondering if it would be possible however to tell CAS to use a claim to uniquely identify a user (like 'preferred_username')' just so that the unique identifiers won't be tied to the username in the identityserver configuration.
The only issue left for now is the dependencies which I mentioned in the previous post. Added to pom.xml but they're still missing in the target. Any ideas how to fix this?
You mentioned "The dependencies should be defined as you did for your Maven overlay artifact and found as they are in the Maven central repository. Are you sure you have access to it?". I'm not quite sure I understand the question. Also, how could I find out if I have access to it?
I'm assuming using a PrincipalResolver
means implementing it?
Regarding the maven repository, I'm using the central one via the internet. Does it work properly for you (the war file includes the jars) if you just update the pom.xml file to add those dependencies?
Another thing I noticed: I deployed the cas server as a web app in Azure and although I access it via https and CAN login I get still this warning message:
http://imgur.com/JgBEkM0
I've found something online which was mentioning this is a false warning but I would like to know how the cas server detects if it's a secure connection and if there is a way to fix this warning?
The last thing I would like to know is if it's possible to logout of the CAS server via the web interface. Right now after I login I see this message:
"Log In Successful
You, Florin, have successfully logged into the Central Authentication Service.
When you are finished, for security reasons, please Log Out and Exit your web browser."
but there's no logout URL.
Yes, you certainly need to develop the appropriate PrincipalResolver
. I'm not fully sure on this, it must be tested.
About the dependencies, I don't have them in the 4.2.x branch, nor in the master.
For logout, the url to call is: /cas/logout
.