uniauth-spring-boot-starter
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>org.alexmond</groupId>
<artifactId>uniauth-spring-boot-starter</artifactId>
<version>4.1.0.2</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.alexmond</groupId>
<artifactId>uniauth-parent</artifactId>
<version>4.1.0.2</version>
</parent>
<artifactId>uniauth-spring-boot-starter</artifactId>
<name>UniAuth Spring Boot Starter</name>
<description>Universal authentication starter — internal, OAuth2/OIDC, SAML 2.0 and LDAP providers
coexisting behind a single SecurityFilterChain with a provider-chooser login page.
</description>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<!--
OAuth2/OIDC ships with the starter: it is on Maven Central, it needs no extra
repository, and its autoconfiguration stays inert until registrations are
configured. Carrying it therefore costs a consumer nothing they can observe.
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-oauth2-client</artifactId>
</dependency>
<!--
OPTIONAL, and the cost of getting this wrong is unusually high: OpenSAML, which
spring-security-saml2-service-provider needs, is NOT published to Maven Central. A
compile-scope dependency here therefore breaks every consumer's build until they add
the Shibboleth repository — including consumers who will never speak SAML, and who
have no way to know from the error message why an authentication library is asking
them to trust a third-party Maven repository.
Using SAML? Add this to your own build, together with the Shibboleth repository (see
the README). It must be Boot's SAML STARTER, not spring-security-saml2-service-provider
on its own: Boot 4 moved SAML autoconfiguration into its own module, and the Spring
Security artifact alone gives you the filters with no binding — so
spring.security.saml2.relyingparty.* is read by nobody, no repository is created, the
chooser lists no SAML provider, and saml2Login never installs, silently, because
nothing is missing as far as the classpath is concerned.
SamlMechanism is the only class naming a SAML type, behind @ConditionalOnClass, and
MechanismResolver / PrincipalIdentityResolver isolate the two they read off a
principal — so the starter backs off cleanly when the jars are absent.
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security-saml2</artifactId>
<optional>true</optional>
</dependency>
<!--
OPTIONAL. An application that never enables LDAP should not have to carry the
jars, and carrying them is not free: spring-boot-starter-ldap activates Boot's
own LdapAutoConfiguration, which builds a ContextSource for ldap://localhost:389
and whose health indicator then reports DOWN. On Kubernetes that is a failed
readiness probe and a rollout that never completes, in an application that never
asked for a directory — and neither uniauth.ldap.enabled=false nor
uniauth.enabled=false can switch it off, because the indicator is Boot's and keys
off the jar rather than off any property of ours.
Using LDAP? Add spring-boot-starter-ldap to your own build. LdapAuthConfiguration
is @ConditionalOnClass, and MechanismResolver isolates the one type it needs, so
the starter backs off cleanly when they are absent.
-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-ldap</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-ldap</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<!-- Boot 4 split MockMvc test support out of spring-boot-starter-test. -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-webmvc-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.unboundid</groupId>
<artifactId>unboundid-ldapsdk</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<!-- prepare-agent and report are inherited from the parent. -->
<executions>
<execution>
<id>check</id>
<goals>
<goal>check</goal>
</goals>
<configuration>
<rules>
<rule>
<element>BUNDLE</element>
<limits>
<limit>
<counter>LINE</counter>
<value>COVEREDRATIO</value>
<minimum>0.80</minimum>
</limit>
</limits>
</rule>
</rules>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>