okta-auth-java

Overview

Maven Central License Support API Reference Build Status

Okta Java Authentication SDK

The Okta Authentication SDK is a convenience wrapper around Okta's Authentication API.

Is This Library Right for Me?

This SDK is a convenient HTTP client wrapper for Okta's Authentication API. These APIs are powerful and useful if you need to achieve one of these cases:

  • You have an existing application that needs to accept primary credentials (username and password) and do custom logic before communicating with Okta.
  • You have significantly custom authentication workflow or UI needs, such that Okta’s hosted sign-in page or Sign-In Widget do not give you enough flexibility.

The power of this SDK comes with more responsibility and maintenance: you will have to design your authentication workflow and UIs by hand, respond to all relevant states in Okta’s authentication state machine, and keep up to date with new features and states in Okta.

Otherwise, most applications can use the Okta hosted sign-in page or the Sign-in Widget. For these cases, you should use Okta's Spring Boot Starter, Spring Security or other OIDC/OAuth 2.0 library.

Authentication State Machine

Okta's Authentication API is built around a state machine. In order to use this library you will need to be familiar with the available states. You will need to implement a handler for each state you want to support.

State Model Diagram

We also publish these libraries for Java:

You can learn more on the Okta + Java page in our documentation.

Release status

This library uses semantic versioning and follows Okta's library version policy.

Version Status
1.x 🕘 Retiring effective April 28, 2021
2.x.x ✔️ Stable (migration guide)

The latest release can always be found on the releases page.

Need help?

If you run into problems using the SDK, you can

Getting started

To use this SDK you will need to include the following dependencies:

For Apache Maven:

<dependency>
    <groupId>com.okta.authn.sdk</groupId>
    <artifactId>okta-authn-sdk-api</artifactId>
    <version>${okta.authn.version}</version>
</dependency>
<dependency>
    <groupId>com.okta.authn.sdk</groupId>
    <artifactId>okta-authn-sdk-impl</artifactId>
    <version>${okta.authn.version}</version>
    <scope>runtime</scope>
</dependency>
<dependency>
    <groupId>com.okta.sdk</groupId>
    <artifactId>okta-sdk-httpclient</artifactId>
    <version>3.0.1</version>
    <scope>runtime</scope>
</dependency>

For Gradle:

compile 'com.okta.authn.sdk:okta-authn-sdk-api:${okta.authn.version}'
runtime 'com.okta.authn.sdk:okta-authn-sdk-impl:${okta.authn.version}'
runtime 'com.okta.sdk:okta-sdk-httpclient:3.0.1'

SNAPSHOT Dependencies

Snapshots are deployed off of the 'master' branch to OSSRH and can be consumed using the following repository configured for Apache Maven or Gradle:

https://oss.sonatype.org/content/repositories/snapshots/

You'll also need:

Construct a client instance by passing it your Okta domain name and API token:

AuthenticationClient client = AuthenticationClients.builder()
    .setOrgUrl("https://{yourOktaDomain}")
    .build();

Hard-coding the Okta domain works for quick tests, but for real projects you should use a more secure way of storing these values (such as environment variables). This library supports a few different configuration sources, covered in the configuration reference section.

Usage guide

These examples will help you understand how to use this library. You can also browse the full API reference documentation.

Once you initialize a AuthenticationClient, you can call methods to make requests to the Okta Authentication API. To call other Okta APIs, see the Management SDK.

Authenticate a User

An authentication flow usually starts with a call to authenticate:

// could be where to redirect when authentication is done, a token, or null
String relayState = "/application/specific";
client.authenticate(username, password, relayState, stateHandler);

Everything looks pretty standard except for stateHandler. The AuthenticationStateHandler is a mechanism to fire an event for the given authentication state returned. Basically, it prevents you from needing to use something like a switch statement to check state of the AuthenticationResponse.

A typical AuthenticationStateHandler may look something like:

public class ExampleAuthenticationStateHandler extends AuthenticationStateHandlerAdapter {

    @Override
    public void handleUnknown(AuthenticationResponse unknownResponse) {
        // redirect to "/error"
    }

    @Override
    public void handleSuccess(AuthenticationResponse successResponse) {
        
        // a user is ONLY considered authenticated if a sessionToken exists
        if (Strings.hasLength(successResponse.getSessionToken())) {
            String relayState = successResponse.getRelayState();
            String dest = relayState != null ? relayState : "/";
            // redirect to dest    
        }
        // other state transition successful 
    }

    @Override
    public void handlePasswordExpired(AuthenticationResponse passwordExpired) {
        // redirect to "/login/change-password"
    }
    
    // Other implemented states here
}

As noted in the above example, a user is ONLY considered authenticated if AuthenticationResponse.getSessionToken() is not null. This sessionToken can be exchanged via the Okta Sessions API to start an SSO session, but that is beyond the scope of this library.

NOTE: UNKNOWN is not an actual state in Okta's state model. The method handleUnknown is called when an unimplemented or unrecognized state is reached. This could happen if:

  • Your handler doesn't have an implementation for the state that was just returned
  • Your Okta organization configuration changed, and a new state is now possible (for example, an admin turned on multi-factor authentication)
  • Okta added something new to the state model entirely

Configuration reference

This library looks for configuration in the following sources:

  1. An okta.yaml at the root of the applications classpath
  2. An okta.yaml file in a .okta folder in the current user's home directory (~/.okta/okta.yaml or %userprofile\.okta\okta.yaml)
  3. Environment variables
  4. Java System Properties
  5. Configuration explicitly passed to the constructor (see the example in Getting started)

Higher numbers win. In other words, configuration passed via the constructor will override configuration found in environment variables, which will override configuration in okta.yaml (if any), and so on.

YAML configuration

The full YAML configuration looks like:

okta:
  client:
    connectionTimeout: 30 # seconds
    orgUrl: "https://{yourOktaDomain}" # i.e. https://dev-123456.oktapreview.com
    proxy:
      port: null
      host: null
      username: null
      password: null
    requestTimeout: 10 # seconds
    rateLimit:
      maxRetries: 2

Environment variables

Each one of the configuration values above can be turned into an environment variable name with the _ (underscore) character:

  • OKTA_CLIENT_CONNECTIONTIMEOUT
  • OKTA_CLIENT_RATELIMIT_MAXRETRIES
  • and so on

System properties

Each one of of the configuration values written in 'dot' notation to be used as a Java system property:

  • okta.client.connectionTimeout
  • okta.client.rateLimt.maxRetries
  • and so on

Connection Retry / Rate Limiting

By default this SDK will retry requests that are return with a 503, 504, 429, or socket/connection exceptions. To disable this functionality set the properties okta.client.requestTimeout and okta.client.rateLimit.maxRetries to 0.

Setting only one of the values to zero will disable that check. Meaning, by default, four retry attempts will be made. If you set okta.client.requestTimeout to 45 seconds and okta.client.rateLimit.maxRetries to 0. This SDK will continue to retry indefinitely for 45 seconds. If both values are non zero, this SDK will attempt to retry until either of the conditions are met (not both).

Setting Request Headers, Parameters, and Device Fingerprinting

All of the AuthenticationClient requests allow setting additional HTTP headers and query parameters. This is useful in a variety of situations:

  • Device Finterprinting
  • Setting the X-Forwarded-For header
  • Setting additional query paramters that have not been added to the SDK yet

Create a RequestContext object, and include it as a method parameter when using the AuthenticationClient.

List<Header> headers = new ArrayList<>();

// set any header
headers.add(new Header("aHeaderName", "aValue"));

// X-Forwarded-For
headers.add(Header.xForwardedFor("10.10.0.1"));

// X-Device-Fingerprint
headers.add(Header.xDeviceFingerprint("your-finger-print"));
List<QueryParameter> queryParameters = new ArrayList<>();

// set query param
queryParameters.add(new QueryParameter("aQueryParam", "aValue"));
RequestContext requestContext = new RequestContext(headers, queryParameters);

Building the SDK

In most cases, you won't need to build the SDK from source. If you want to build it yourself, take a look at the build instructions wiki (though just cloning the repo and running mvn install should get you going).

Contributing

We're happy to accept contributions and PRs! Please see the contribution guide to understand how to structure a contribution.

Comments
  • Unable to use

    Unable to use "correctAnswer" from AuthenticationResponse.

    In my application, we are using OKTA login with MFA factor (PUSH) and I want to add an extra security check correct answer feature in that. Trying to fetch "correctAnswer" from "AuthenticationResponse" but unfortunately, it's throwing an error as Error: "Unresolved reference: correctAnswer"

            val oktaAuthStatus = loginResponse?.authData as? AuthenticationResponse
            val oktaVerifyNumber = oktaAuthStatus?.correctAnswer
    

    SDK Version

    okta_sdk_Api = "2.0.0" okta_sdk_impl = "2.0.0" okta_sdk_okhttp = "2.0.0"

    question need more details 
    opened by RajaReddyP 17
  • enrollFactor method

    enrollFactor method

    Describe the bug?

    Hello , I am trying to mfa enrollement for a new user , the method take parameters are availables fro factor ans state token but cant get FactorProfile . regards

    What is expected to happen?

    get FACTOR PROFILE

    What is the actual behavior?

    not able to get FactorProfile

    Reproduction Steps?

    enrollement sms and email

    Additional Information?

    No response

    SDK Version

    1.2.1

    Build Information

    :1.2.1

    help wanted 
    opened by yahmi 12
  • DefaultAuthenticationResponse(InternalDataStore dataStore) is missing.

    DefaultAuthenticationResponse(InternalDataStore dataStore) is missing.

    For some reason com.okta.sdk.ds.DataStore#instantiate method cannot do work for DefaultAuthenticationResponse resource.

    Error: java.lang.NoSuchMethodException: com.okta.authn.sdk.impl.resource.DefaultAuthenticationResponse.<init>(com.okta.sdk.impl.ds.InternalDataStore)

    opened by asukhyy 12
  • Application crash with okta-sdk-okhttp version: 1.6.0

    Application crash with okta-sdk-okhttp version: 1.6.0

    When I updated okta-sdk-okhttp version to 1.6.0 application crashing.

    implementation "com.okta.sdk:okta-sdk-okhttp:1.6.0"

    Logs:

    Caused by: java.lang.NoSuchFieldError: No static field INSTANCE of type Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; in class Lorg/apache/http/conn/ssl/AllowAllHostnameVerifier; or its superclasses (declaration of 'org.apache.http.conn.ssl.AllowAllHostnameVerifier' appears in /system/framework/framework.jar!classes3.dex) 
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.<clinit>(SSLConnectionSocketFactory.java:149) 
    at org.apache.http.conn.ssl.SSLConnectionSocketFactory.getSocketFactory(SSLConnectionSocketFactory.java:183) 
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.getDefaultRegistry(PoolingHttpClientConnectionManager.java:115) 
    at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.<init>
    

    I didn't get proper documentation with this latest version, Can you please help to resolve this.

    opened by RajaReddyP 10
  • Authentication of Staged user

    Authentication of Staged user

    Hi Team,

    I am looking to authenticate staged user. The use case, we have of an existing applications where we are moving away from current IDP to Okta. We have flow like below;

    1. User self registers to the application online (No Okta interaction at this time). It creates a registration request, which needs to be reviewed and approved by staff.
    2. Internal staff reviews and approves the request through intranet based internal application (based on certain legal requirements). On approval, we are creating Okta user with staged status. As part of approval, the email is triggered to end user to complete the registration to the site - which includes setting user profile in our datastore and then activate the User in Okta.
    3. The okta user creation in step # 2 includes temp password, which needs to be authenticated by user. Only after that, user will setup permanent password of his choice to make user creation complete. That's where, we are calling auth API call with User id & Pwd of staged user, which is failing. If we change the status as active (through OKTA site) - auth call works as expected. So we need to auth user in a case, where it's status is staged.

    Please guide, if we are doing something wrong here.

    Vivek Bedekar

    opened by vekdeq 10
  • Cannot get basic example to work

    Cannot get basic example to work

    Here are my deps in gradle

        implementation 'com.okta.authn.sdk:okta-authn-sdk-api:1.0.0'
        runtimeOnly 'com.okta.authn.sdk:okta-authn-sdk-impl:1.0.0'
        runtimeOnly 'com.okta.sdk:okta-sdk-okhttp:1.5.2'
    

    and my code

    val mOktaAuth = AuthenticationClients.builder().setOrgUrl("https://app-api.okta.com").build()
    
    mOktaAuth.authenticate(emailText.text.toString(), passwordText.text.toString().toCharArray(), "/application/specific", x)
    
    x being my AuthenticationStateHandlerAdapter
    
    and the error I get every time is 
    `com.okta.sdk.impl.http.RestException: Unable to execute HTTP request: null`
    
    opened by yashrao99 10
  • forgot password with trusted application

    forgot password with trusted application

    What is the correct way of making the following call via the auth sdk?

    curl -v -X POST \
    -H "Accept: application/json" \
    -H "Content-Type: application/json" \
    -H "Authorization: SSWS ${api_token}" \
    -H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36" \
    -d '{
      "username": "[email protected]"
    }' "https://${yourOktaDomain}/api/v1/authn/recovery/password"
    

    The 3 approaches below all result in com.okta.sdk.resource.ResourceException: HTTP 403, Okta E0000006 (You do not have permission to perform the requested action), ErrorId oaeKo877F3cSvuSpMIaOBx60g

    1

    AuthenticationResponse authResponse = authenticationClient.recoverPassword("[email protected]", null, null, null);
    

    2

    AuthenticationResponse authResponse = authenticationClient.recoverPassword(authenticationClient
    		.instantiate(RecoverPasswordRequest.class)
    		.setUsername("[email protected]"), null);
    

    3

    ExtensibleResource body = authenticationClient.instantiate(ExtensibleResource.class);
    body.put("username", "[email protected]");
    AuthenticationResponse authResponse = authenticationClient
    		.getDataStore().http().setBody(body).post("/api/v1/authn/recovery/password",
    				AuthenticationResponse.class);
    
    opened by garcger-blk 9
  • Update okta-auth-java to use okta-sdk-java 2.0

    Update okta-auth-java to use okta-sdk-java 2.0

    Getting following exception when migrating to okta-sdk-java 2.0.

    <okta.version>2.0.0</okta.version>
    <okta.auth.version>1.0.0</okta.auth.version>
    
    Caused by: java.lang.NoClassDefFoundError: com/okta/sdk/lang/Classes
    	at com.okta.authn.sdk.client.AuthenticationClients.builder(AuthenticationClients.java:43) ~[okta-authn-sdk-api-1.0.0.jar:1.0.0]
    	at com.example.demo.OktaClientService.setup(OktaClientService.java:81) ~[classes/:na]
    	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_241]
    	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_241]
    	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.8.0_241]
    	at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.8.0_241]
    
    opened by venuduggireddy 9
  • AuthenticationClients.builder().build() doesn't work

    AuthenticationClients.builder().build() doesn't work

    Hi There,

    Firstly, I am comparing this with okta-sdk-java api as both APIs as necessary for our Legacy Spring Boot based integration with Okta. We are moving away from our current IS / SSO provider to Okta. To minimize the migration efforts, we are leveraging both these APIs where in :

    1. We are getting com.okta.sdk.client.Client bean injected directly through OktaSdkConfig for SDK api - which takes care of configuring client pointing to below properties okta.client.token=yyyyyyy okta.client.orgUrl=https://xxxxx.oktapreview.com

    2. There is nothing similar to get com.okta.authn.sdk.client.AuthenticationClient bean like OktaSdkConfig in auth API. Hence when, we use

    @Bean public AuthenticationClient getOktaAuthenticationClient() { return AuthenticationClients.builder().build(); } it doesn't pick up the the Org URL & token configured in app.prop file and fails with threw exception; nested exception is java.lang.IllegalArgumentException: Okta org url must not be null.

    Am I missing something ? I am using 1.0.0 version. API docs says - your prop files needs to be configured as above. Please guide.

    opened by vekdeq 9
  • Upgrade Auth SDK to v2.0.0

    Upgrade Auth SDK to v2.0.0

    Issue

    OKTA-312681

    Description

    Upgrade okta-auth-java SDK to major release version 2.0.0 to align with the recent Java Mgmt SDK v2.0.0 upgrade.

    Category

    • [ ] Bugfix
    • [ ] Enhancement
    • [x] Version Upgrade
    • [ ] New Feature
    • [ ] Configuration Change
    • [ ] Versioning Change
    • [ ] Unit Test(s)
    • [ ] Documentation
    opened by arvindkrishnakumar-okta 7
  • Need an AuthenticationBuilder

    Need an AuthenticationBuilder

    It would be helpful if there was an AuthenticationBuilder, similar to the UserBuilder of the okta-sdk-api.

    If one wants to create an authentication proxy or broker application, they need to craft their own AuthenticationRequest with a context (deviceToken) and options. So, the client.authenticate(username, password, relayState, handler) method doesn't cut it.

    Also, I believe we'd need a way to set the User-Agent and X-Forwarded-For headers on each request. (Perhaps this should be a separate issue.)

    Analysis 
    opened by mfulgo 7
  • Bump springboot.version from 2.7.5 to 3.0.1

    Bump springboot.version from 2.7.5 to 3.0.1

    Bumps springboot.version from 2.7.5 to 3.0.1. Updates spring-boot-starter-thymeleaf from 2.7.5 to 3.0.1

    Release notes

    Sourced from spring-boot-starter-thymeleaf's releases.

    v3.0.1

    :lady_beetle: Bug Fixes

    • Fix typo in LocalDevToolsAutoConfiguration logging #33615
    • No warning is given when <springProfile> is used in a Logback <root> block #33610
    • Auto-configure PropagationWebGraphQlInterceptor for tracing propagation #33542
    • WebClient instrumentation fails with IllegalArgumentException when adapting to WebClientExchangeTagsProvider #33483
    • Reactive observation auto-configuration does not declare order for WebFilter #33444
    • Web server fails to start due to "Resource location must not be null" when attempting to use a PKCS 11 KeyStore #33433
    • Actuator health endpoint for neo4j throws NoSuchElementException and always returns Status.DOWN #33428
    • Anchors in YAML configuration files throw UnsupportedOperationException #33404
    • ZipkinRestTemplateSender is not customizable #33399
    • AOT doesn't work with Logstash Logback Encoder #33387
    • Maven process-aot goal fails when release version is set in Maven compiler plugin #33382
    • DependsOnDatabaseInitializationPostProcessor re-declares bean dependencies at native image runtime #33374
    • @SpringBootTest now throws a NullPointerException rather than a helpful IllegalStateException when @SpringBootConfiguration is not found #33371
    • bootBuildImage always trys to create a native image due to bootJar always adding a META-INF/native-image/argfile to the jar #33363

    :notebook_with_decorative_cover: Documentation

    • Improve gradle plugin tags documentation #33617
    • Improve maven plugin tags documentation #33616
    • Fix typo in tomcat accesslog checkExists doc #33512
    • Documented Java compiler level is wrong #33505
    • Fix typo in documentation #33453
    • Update instead of replace environment in bootBuildImage documentation #33424
    • Update the reference docs to document the need to declare the native-maven-plugin when using buildpacks to create a native image #33422
    • Document that the shutdown endpoint is not intended for use when deploying a war to a servlet container #33410
    • Reinstate GraphQL testing documentaion #33407
    • Description of NEVER in Sanitize Sensitive Values isn't formatted correctly #33398

    :hammer: Dependency Upgrades

    • Upgrade to AspectJ 1.9.19 #33586
    • Upgrade to Byte Buddy 1.12.20 #33587
    • Upgrade to Couchbase Client 3.4.1 #33588
    • Upgrade to Dropwizard Metrics 4.2.14 #33589
    • Upgrade to Elasticsearch Client 8.5.3 #33590
    • Upgrade to Hibernate 6.1.6.Final #33591
    • Upgrade to HttpClient 4.5.14 #33592
    • Upgrade to HttpCore 4.4.16 #33593
    • Upgrade to Infinispan 14.0.4.Final #33594
    • Upgrade to Jaybird 4.0.8.java11 #33595
    • Upgrade to Jetty 11.0.13 #33596
    • Upgrade to jOOQ 3.17.6 #33597
    • Upgrade to Kotlin 1.7.22 #33598
    • Upgrade to Lettuce 6.2.2.RELEASE #33599
    • Upgrade to MongoDB 4.8.1 #33600
    • Upgrade to MSSQL JDBC 11.2.2.jre17 #33601
    • Upgrade to Native Build Tools Plugin 0.9.19 #33602

    ... (truncated)

    Commits
    • 837947c Release v3.0.1
    • 5929d95 Merge branch '2.7.x'
    • b10b788 Next development version (v2.7.8-SNAPSHOT)
    • f588793 Update copyright year of changed files
    • 0254619 Merge branch '2.7.x'
    • e4772cf Update copyright year of changed files
    • 2e7ca6f Warning if <springProfile> is used in phase 2 model elements
    • 2ed512d Use model.deepMarkAsSkipped in SpringProfileModelHandler
    • 532fed3 Increase couchbase connection timeout for tests
    • 9562a2c Merge branch '2.7.x'
    • Additional commits viewable in compare view

    Updates spring-boot-starter-web from 2.7.5 to 3.0.1

    Release notes

    Sourced from spring-boot-starter-web's releases.

    v3.0.1

    :lady_beetle: Bug Fixes

    • Fix typo in LocalDevToolsAutoConfiguration logging #33615
    • No warning is given when <springProfile> is used in a Logback <root> block #33610
    • Auto-configure PropagationWebGraphQlInterceptor for tracing propagation #33542
    • WebClient instrumentation fails with IllegalArgumentException when adapting to WebClientExchangeTagsProvider #33483
    • Reactive observation auto-configuration does not declare order for WebFilter #33444
    • Web server fails to start due to "Resource location must not be null" when attempting to use a PKCS 11 KeyStore #33433
    • Actuator health endpoint for neo4j throws NoSuchElementException and always returns Status.DOWN #33428
    • Anchors in YAML configuration files throw UnsupportedOperationException #33404
    • ZipkinRestTemplateSender is not customizable #33399
    • AOT doesn't work with Logstash Logback Encoder #33387
    • Maven process-aot goal fails when release version is set in Maven compiler plugin #33382
    • DependsOnDatabaseInitializationPostProcessor re-declares bean dependencies at native image runtime #33374
    • @SpringBootTest now throws a NullPointerException rather than a helpful IllegalStateException when @SpringBootConfiguration is not found #33371
    • bootBuildImage always trys to create a native image due to bootJar always adding a META-INF/native-image/argfile to the jar #33363

    :notebook_with_decorative_cover: Documentation

    • Improve gradle plugin tags documentation #33617
    • Improve maven plugin tags documentation #33616
    • Fix typo in tomcat accesslog checkExists doc #33512
    • Documented Java compiler level is wrong #33505
    • Fix typo in documentation #33453
    • Update instead of replace environment in bootBuildImage documentation #33424
    • Update the reference docs to document the need to declare the native-maven-plugin when using buildpacks to create a native image #33422
    • Document that the shutdown endpoint is not intended for use when deploying a war to a servlet container #33410
    • Reinstate GraphQL testing documentaion #33407
    • Description of NEVER in Sanitize Sensitive Values isn't formatted correctly #33398

    :hammer: Dependency Upgrades

    • Upgrade to AspectJ 1.9.19 #33586
    • Upgrade to Byte Buddy 1.12.20 #33587
    • Upgrade to Couchbase Client 3.4.1 #33588
    • Upgrade to Dropwizard Metrics 4.2.14 #33589
    • Upgrade to Elasticsearch Client 8.5.3 #33590
    • Upgrade to Hibernate 6.1.6.Final #33591
    • Upgrade to HttpClient 4.5.14 #33592
    • Upgrade to HttpCore 4.4.16 #33593
    • Upgrade to Infinispan 14.0.4.Final #33594
    • Upgrade to Jaybird 4.0.8.java11 #33595
    • Upgrade to Jetty 11.0.13 #33596
    • Upgrade to jOOQ 3.17.6 #33597
    • Upgrade to Kotlin 1.7.22 #33598
    • Upgrade to Lettuce 6.2.2.RELEASE #33599
    • Upgrade to MongoDB 4.8.1 #33600
    • Upgrade to MSSQL JDBC 11.2.2.jre17 #33601
    • Upgrade to Native Build Tools Plugin 0.9.19 #33602

    ... (truncated)

    Commits
    • 837947c Release v3.0.1
    • 5929d95 Merge branch '2.7.x'
    • b10b788 Next development version (v2.7.8-SNAPSHOT)
    • f588793 Update copyright year of changed files
    • 0254619 Merge branch '2.7.x'
    • e4772cf Update copyright year of changed files
    • 2e7ca6f Warning if <springProfile> is used in phase 2 model elements
    • 2ed512d Use model.deepMarkAsSkipped in SpringProfileModelHandler
    • 532fed3 Increase couchbase connection timeout for tests
    • 9562a2c Merge branch '2.7.x'
    • Additional commits viewable in compare view

    Updates spring-boot-starter-test from 2.7.5 to 3.0.1

    Release notes

    Sourced from spring-boot-starter-test's releases.

    v3.0.1

    :lady_beetle: Bug Fixes

    • Fix typo in LocalDevToolsAutoConfiguration logging #33615
    • No warning is given when <springProfile> is used in a Logback <root> block #33610
    • Auto-configure PropagationWebGraphQlInterceptor for tracing propagation #33542
    • WebClient instrumentation fails with IllegalArgumentException when adapting to WebClientExchangeTagsProvider #33483
    • Reactive observation auto-configuration does not declare order for WebFilter #33444
    • Web server fails to start due to "Resource location must not be null" when attempting to use a PKCS 11 KeyStore #33433
    • Actuator health endpoint for neo4j throws NoSuchElementException and always returns Status.DOWN #33428
    • Anchors in YAML configuration files throw UnsupportedOperationException #33404
    • ZipkinRestTemplateSender is not customizable #33399
    • AOT doesn't work with Logstash Logback Encoder #33387
    • Maven process-aot goal fails when release version is set in Maven compiler plugin #33382
    • DependsOnDatabaseInitializationPostProcessor re-declares bean dependencies at native image runtime #33374
    • @SpringBootTest now throws a NullPointerException rather than a helpful IllegalStateException when @SpringBootConfiguration is not found #33371
    • bootBuildImage always trys to create a native image due to bootJar always adding a META-INF/native-image/argfile to the jar #33363

    :notebook_with_decorative_cover: Documentation

    • Improve gradle plugin tags documentation #33617
    • Improve maven plugin tags documentation #33616
    • Fix typo in tomcat accesslog checkExists doc #33512
    • Documented Java compiler level is wrong #33505
    • Fix typo in documentation #33453
    • Update instead of replace environment in bootBuildImage documentation #33424
    • Update the reference docs to document the need to declare the native-maven-plugin when using buildpacks to create a native image #33422
    • Document that the shutdown endpoint is not intended for use when deploying a war to a servlet container #33410
    • Reinstate GraphQL testing documentaion #33407
    • Description of NEVER in Sanitize Sensitive Values isn't formatted correctly #33398

    :hammer: Dependency Upgrades

    • Upgrade to AspectJ 1.9.19 #33586
    • Upgrade to Byte Buddy 1.12.20 #33587
    • Upgrade to Couchbase Client 3.4.1 #33588
    • Upgrade to Dropwizard Metrics 4.2.14 #33589
    • Upgrade to Elasticsearch Client 8.5.3 #33590
    • Upgrade to Hibernate 6.1.6.Final #33591
    • Upgrade to HttpClient 4.5.14 #33592
    • Upgrade to HttpCore 4.4.16 #33593
    • Upgrade to Infinispan 14.0.4.Final #33594
    • Upgrade to Jaybird 4.0.8.java11 #33595
    • Upgrade to Jetty 11.0.13 #33596
    • Upgrade to jOOQ 3.17.6 #33597
    • Upgrade to Kotlin 1.7.22 #33598
    • Upgrade to Lettuce 6.2.2.RELEASE #33599
    • Upgrade to MongoDB 4.8.1 #33600
    • Upgrade to MSSQL JDBC 11.2.2.jre17 #33601
    • Upgrade to Native Build Tools Plugin 0.9.19 #33602

    ... (truncated)

    Commits
    • 837947c Release v3.0.1
    • 5929d95 Merge branch '2.7.x'
    • b10b788 Next development version (v2.7.8-SNAPSHOT)
    • f588793 Update copyright year of changed files
    • 0254619 Merge branch '2.7.x'
    • e4772cf Update copyright year of changed files
    • 2e7ca6f Warning if <springProfile> is used in phase 2 model elements
    • 2ed512d Use model.deepMarkAsSkipped in SpringProfileModelHandler
    • 532fed3 Increase couchbase connection timeout for tests
    • 9562a2c Merge branch '2.7.x'
    • Additional commits viewable in compare view

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Bump logback-classic from 1.3.4 to 1.4.5

    Bump logback-classic from 1.3.4 to 1.4.5

    Bumps logback-classic from 1.3.4 to 1.4.5.

    Commits
    • 34a6efc preparfe release 1.4.5
    • 0d3ac63 fix LOGBACK-1698, [Nested appenders are not allowed] warning using SiftingApp...
    • a64b8d4 make jakarta.servlet-api as both provided and optional
    • 114b3de bump slf4j version
    • 1df6662 fix LOGBACK-1706
    • ea165fb fix LOGBACK-1703
    • 9e07bd0 fix LOGBACK-1703
    • a871e9f minor edits in README.md
    • 7dc0ce5 Merge pull request #605 from Zardoz89/patch-1
    • 7130dfe README.md MUST inform about Java & Jackarta EE support
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Failed resolution of: Ljava/time/format/DateTimeFormatter on Android 7 devices

    Failed resolution of: Ljava/time/format/DateTimeFormatter on Android 7 devices

    :information_source: If you have a question, please post it on the Okta Developer Forum instead. Issues in this repository are reserved for bug reports and feature requests only.

    I'm submitting a

    • [x] bug report
    • [ ] feature request

    Background info

    When updating SDK versions we noticed the appearance of a new crash originating in the Okta SDK (stack trace below). It only impacts users on Android 7.

    Fatal Exception: java.lang.NoClassDefFoundError: Failed resolution of: Ljava/time/format/DateTimeFormatter;
           at com.okta.commons.http.RequestUtils.<clinit>(RequestUtils.java:32)
           at com.okta.commons.http.RequestUtils.fetchHeaderValueAndRemoveIfPresent(RequestUtils.java:93)
           at com.okta.commons.http.okhttp.OkHttpRequestExecutor.executeRequest(OkHttpRequestExecutor.java:122)
           at com.okta.commons.http.RetryRequestExecutor.doExecuteRequest(RetryRequestExecutor.java:147)
           at com.okta.commons.http.RetryRequestExecutor.executeRequest(RetryRequestExecutor.java:120)
           at com.okta.sdk.impl.ds.DefaultDataStore.execute(DefaultDataStore.java:442)
           at com.okta.sdk.impl.ds.DefaultDataStore.lambda$save$2(DefaultDataStore.java:316)
           at com.okta.sdk.impl.ds.DefaultDataStore.$r8$lambda$gKSDnks1-IbOCylz54X-TzaK5-s(DefaultDataStore.java)
           at com.okta.sdk.impl.ds.DefaultDataStore$$InternalSyntheticLambda$0$c4e7d458d0255d3533048628a92b18309bb945b5c716d564711e1a81e9edfaf4$0.filter(DefaultDataStore.java)
           at com.okta.sdk.impl.ds.DefaultFilterChain.filter(DefaultFilterChain.java:47)
           at com.okta.sdk.impl.ds.DefaultDataStore.save(DefaultDataStore.java:348)
           at com.okta.sdk.impl.ds.DefaultDataStore.create(DefaultDataStore.java:246)
           at com.okta.authn.sdk.impl.client.DefaultAuthenticationClient.doPost(DefaultAuthenticationClient.java:301)
           at com.okta.authn.sdk.impl.client.DefaultAuthenticationClient.authenticate(DefaultAuthenticationClient.java:83)
           at com.okta.authn.sdk.client.AuthenticationClient.authenticate(AuthenticationClient.java:108)
           at com.okta.authn.sdk.impl.client.DefaultAuthenticationClient.authenticate(DefaultAuthenticationClient.java:74)
    

    Expected behavior

    No crash

    What went wrong?

    Crash

    Steps to reproduce

    Occurs for users on Android 7 when logging in with username and password (authenticationClient.authenticate(email, password, ...))

    SDK Version

    Updated versions are:

    implementation "com.okta.authn.sdk:okta-authn-sdk-api:2.0.2" runtimeOnly "com.okta.authn.sdk:okta-authn-sdk-impl:2.0.2" implementation "com.okta.android:okta-oidc-android:1.3.2" runtimeOnly "com.okta.sdk:okta-sdk-okhttp:8.2.1"

    Previous versions were:

    implementation "com.okta.authn.sdk:okta-authn-sdk-api:2.0.0" runtimeOnly "com.okta.authn.sdk:okta-authn-sdk-impl:2.0.0" implementation "com.okta.android:okta-oidc-android:1.2.2" runtimeOnly "com.okta.sdk:okta-sdk-okhttp:2.0.0"

    opened by thereallukesimpson 5
  • DefaultAuthenticationClient.translateException() should be able to handle null errorCode

    DefaultAuthenticationClient.translateException() should be able to handle null errorCode

    :information_source: If you have a question, please post it on the Okta Developer Forum instead. Issues in this repository are reserved for bug reports and feature requests only.

    I'm submitting a

    • [ ] bug report
    • [X] feature request

    Background info

    We use a gateway that monitors the traffic to the actual login APIs to block malicious actors. When that happens, the call returns as an HTTP 4xx error with no payload. But OKTA SDK expects to always have a payload with errorCode when a failure is encountered, so DefaultAuthenticationClient.translateException() will throw a NullPointerException

    Expected behavior

    The SDK should gracefully handle the no-payload scenario and ideally returns the HTTP code so the app can handle it appropriately (e.g. logs the user out if it's blocked by the gateway for security reasons, show an error message if it's HTTP 500, etc)

    What went wrong?

    See Background info

    Steps to reproduce

    1. Use Charles to intercept one of the API calls
    2. Change HTTP status code to 4xx, and remove the payload
    3. A NullPointerException is thrown by AuthenticationClient.authenticate()

    SDK Version

    2.0.2

    opened by kaichunlin 2
  • AuthenticationClient caching user when creating OIDC access tokens

    AuthenticationClient caching user when creating OIDC access tokens

    We found an issue where we attempted to create OIDC access tokens for several users in our account, but when we use these access tokens to get the user's profile information it always returns the same user info for the first user we authenticate using the AuthenticationClient. We create a session token using the following command:

    private String createSession(User user) {
    
      AuthenticationResponse loginResponse = AuthenticationClients.builder()
      .setOrgUrl(OKTA_ORG_URL)
      .build()
      .authenticate(user.getEmail(), user.getPassword(), null, null);
    
      if (AuthenticationStatus.SUCCESS.equals(loginResponse.getStatus())) {
                      return loginResponse.getSessionToken();
                  }
    }
    

    We call this function for several of our Okta users, we then use these session tokens to generate access tokens using the /oauth2/v1/authorize endpoint, the access tokens are successfully generated, and we can call the /oauth2/v1/userinfo endpoint with each access token to get back user info, but every access token always returns the same user profile, and it is always returns whomever the first user was to have a session token generated for them (we confirmed this by testing several different permutations).

    We fixed our issue by pivoting away from the AuthenticationClient and just calling the /api/v1/authn endpoint directly, and our access tokens now return the expected user profiles. Not sure if others have experienced this issue, but we didn't see any previous issue created for this. We tried referencing the Java Docs for the AuthenticationClientBuilder here: https://developer.okta.com/okta-auth-java/development/apidocs/index.html?com/okta/authn/sdk/client/AuthenticationClientBuilder.html which makes a reference to a caching section:

    "Understanding caching is extremely important when creating a AuthenticationClient instance, so please ensure you read the Caching section below."

    However, that section appears to be missing from the docs so we were unable to determine if there was a configuration issue we were missing on our end.

    opened by landon-shumway 4
  • Support for Pre and Post request delegate functionality to support Shape

    Support for Pre and Post request delegate functionality to support Shape

    Both Shape and Okta have SDKs that are opaque to us.

    Okta has a standard SDK where we ask for something at a high level, and the requests are carried out behind the scenes.

    Shape has an SDK where it wants to be given the low-level request object prior to it being sent, and be handed the response for further processing after it has been received.

    In order to integrate Okta with Shape, we need to grant Shape access to the requests and responses that Okta is generating.

    Approach We ask for two new callbacks to be added to the Okta SDK.

    Example from iOS issues - (Android example TBD):

    protocol OktaHttpDelegate {
        
        /// Called after request creation, just before send.
        func willSend(request: NSMutableURLRequest)
        
        /// Called after response received, just after receipt.
        func didReceive(response: HTTPURLResponse)
        
    }
    

    OktaShapeFlow

    Will be repeating this issue for the Android OIDC library and similar approach on the equivalent iOS SDKs

    opened by seanvancity 1
Releases(okta-authn-parent-2.0.9)
  • okta-authn-parent-2.0.9(Nov 7, 2022)

    What's Changed

    • Release pr 2.0.8 by @arvindkrishnakumar-okta in https://github.com/okta/okta-auth-java/pull/224
    • Bump spring-boot.version from 2.7.3 to 2.7.4 by @arvindkrishnakumar-okta in https://github.com/okta/okta-auth-java/pull/225
    • Bump CircleCI JDK17 Image from 17.0.3 to 17.0.4 by @arvindkrishnakumar-okta in https://github.com/okta/okta-auth-java/pull/227
    • Bump kotlin-stdlib from 1.7.10 to 1.7.20 by @dependabot in https://github.com/okta/okta-auth-java/pull/229
    • Bump kotlin-stdlib-common from 1.7.10 to 1.7.20 by @dependabot in https://github.com/okta/okta-auth-java/pull/230
    • Bump logback-classic from 1.4.1 to 1.4.3 by @dependabot in https://github.com/okta/okta-auth-java/pull/228
    • Bump shiro-jaxrs from 1.9.1 to 1.10.0 by @dependabot in https://github.com/okta/okta-auth-java/pull/232
    • Bump logback-classic from 1.4.3 to 1.4.4 by @dependabot in https://github.com/okta/okta-auth-java/pull/233
    • Bump Springboot from 2.7.4 to 2.7.5 by @arvindkrishnakumar-okta in https://github.com/okta/okta-auth-java/pull/234
    • Bump mockito-core from 4.8.0 to 4.8.1 by @dependabot in https://github.com/okta/okta-auth-java/pull/235
    • Bump maven-shade-plugin from 3.4.0 to 3.4.1 by @dependabot in https://github.com/okta/okta-auth-java/pull/236
    • Address cves by @arvindkrishnakumar-okta in https://github.com/okta/okta-auth-java/pull/237

    Full Changelog: https://github.com/okta/okta-auth-java/compare/okta-authn-parent-2.0.8...okta-authn-parent-2.0.9

    Source code(tar.gz)
    Source code(zip)
  • okta-authn-parent-2.0.8(Sep 19, 2022)

    What's Changed

    • Release pr 2.0.7 by @arvindkrishnakumar-okta in https://github.com/okta/okta-auth-java/pull/164
    • Add Java 17 to CI by @arvindkrishnakumar-okta in https://github.com/okta/okta-auth-java/pull/165
    • Bump springboot.version from 2.6.5 to 2.6.6 by @dependabot in https://github.com/okta/okta-auth-java/pull/168
    • Bump okta.sdk.version from 8.1.0 to 8.2.0 by @dependabot in https://github.com/okta/okta-auth-java/pull/166
    • Bump maven-shade-plugin from 3.2.4 to 3.3.0 by @dependabot in https://github.com/okta/okta-auth-java/pull/171
    • Bump jackson-bom from 2.13.2.20220324 to 2.13.2.20220328 by @dependabot in https://github.com/okta/okta-auth-java/pull/167
    • Bump kotlin-stdlib-common from 1.6.10 to 1.6.20 by @dependabot in https://github.com/okta/okta-auth-java/pull/169
    • Bump kotlin-stdlib from 1.6.10 to 1.6.20 by @dependabot in https://github.com/okta/okta-auth-java/pull/170
    • Bump actions/setup-java from 2 to 3 by @dependabot in https://github.com/okta/okta-auth-java/pull/172
    • Bump springboot.version from 2.6.6 to 2.6.7 by @dependabot in https://github.com/okta/okta-auth-java/pull/178
    • Bump dropwizard-bom from 2.0.28 to 2.0.29 by @dependabot in https://github.com/okta/okta-auth-java/pull/174
    • Bump okta.sdk.version from 8.2.0 to 8.2.1 by @dependabot in https://github.com/okta/okta-auth-java/pull/180
    • Bump mockito-core from 4.4.0 to 4.5.1 by @dependabot in https://github.com/okta/okta-auth-java/pull/179
    • Bump rest-assured from 5.0.0 to 5.0.1 by @dependabot in https://github.com/okta/okta-auth-java/pull/173
    • Bump dropwizard-bom from 2.0.29 to 2.1.0 by @dependabot in https://github.com/okta/okta-auth-java/pull/182
    • exclude guava transitive dep from hamcrest-jackson test dep by @arvindkrishnakumar-okta in https://github.com/okta/okta-auth-java/pull/183
    • Added Circle CI config by @arvindkrishnakumar-okta in https://github.com/okta/okta-auth-java/pull/186
    • Bump Jackson dep to 2.13.3 by @arvindkrishnakumar-okta in https://github.com/okta/okta-auth-java/pull/187
    • Add IT failure run step to CircleCI config by @arvindkrishnakumar-okta in https://github.com/okta/okta-auth-java/pull/188
    • Refactor CircleCI config by @arvindkrishnakumar-okta in https://github.com/okta/okta-auth-java/pull/189
    • Bump springboot.version from 2.6.7 to 2.7.0 by @dependabot in https://github.com/okta/okta-auth-java/pull/190
    • Bump mockito-core from 4.5.1 to 4.6.1 by @dependabot in https://github.com/okta/okta-auth-java/pull/194
    • Bump maven-failsafe-plugin from 3.0.0-M6 to 3.0.0-M7 by @dependabot in https://github.com/okta/okta-auth-java/pull/195
    • Bump rest-assured from 5.0.1 to 5.1.1 by @dependabot in https://github.com/okta/okta-auth-java/pull/197
    • Bump kotlin-stdlib-common from 1.6.20 to 1.6.21 by @dependabot in https://github.com/okta/okta-auth-java/pull/177
    • Remove Kotlin dep by @arvindkrishnakumar-okta in https://github.com/okta/okta-auth-java/pull/198
    • Bump kotlin-stdlib-common from 1.6.21 to 1.7.0 by @dependabot in https://github.com/okta/okta-auth-java/pull/199
    • Bump springboot.version from 2.7.0 to 2.7.1 by @dependabot in https://github.com/okta/okta-auth-java/pull/200
    • Bump dropwizard-bom from 2.1.0 to 2.1.1 by @dependabot in https://github.com/okta/okta-auth-java/pull/202
    • Bump shiro-jaxrs from 1.9.0 to 1.9.1 by @dependabot in https://github.com/okta/okta-auth-java/pull/201
    • Bump kotlin-stdlib-common from 1.7.0 to 1.7.10 by @dependabot in https://github.com/okta/okta-auth-java/pull/203
    • Bump kotlin-stdlib from 1.6.20 to 1.7.10 by @dependabot in https://github.com/okta/okta-auth-java/pull/204
    • Bump exec-maven-plugin from 3.0.0 to 3.1.0 by @dependabot in https://github.com/okta/okta-auth-java/pull/205
    • Bump springboot.version from 2.7.1 to 2.7.2 by @dependabot in https://github.com/okta/okta-auth-java/pull/206
    • Bump mockito-core from 4.6.1 to 4.7.0 by @dependabot in https://github.com/okta/okta-auth-java/pull/207
    • Removed unwanted property from pom by @arvindkrishnakumar-okta in https://github.com/okta/okta-auth-java/pull/208
    • use commons-codec 1.15 by @arvindkrishnakumar-okta in https://github.com/okta/okta-auth-java/pull/209
    • Bump okta-parent from 23 to 24 by @dependabot in https://github.com/okta/okta-auth-java/pull/211
    • Bump springboot.version from 2.7.2 to 2.7.3 by @dependabot in https://github.com/okta/okta-auth-java/pull/210
    • fix cve by @arvindkrishnakumar-okta in https://github.com/okta/okta-auth-java/pull/212
    • Update Travis build URL in README by @arvindkrishnakumar-okta in https://github.com/okta/okta-auth-java/pull/213
    • Bump logback-classic from 1.2.11 to 1.4.0 by @dependabot in https://github.com/okta/okta-auth-java/pull/214
    • Bump rest-assured from 5.1.1 to 5.2.0 by @dependabot in https://github.com/okta/okta-auth-java/pull/218
    • Bump mockito-core from 4.7.0 to 4.8.0 by @dependabot in https://github.com/okta/okta-auth-java/pull/217
    • Bump jackson-bom from 2.13.3 to 2.13.4 by @dependabot in https://github.com/okta/okta-auth-java/pull/215
    • Bump japicmp-maven-plugin from 0.15.7 to 0.16.0 by @dependabot in https://github.com/okta/okta-auth-java/pull/216
    • Bump dropwizard-bom from 2.1.1 to 2.1.2 by @dependabot in https://github.com/okta/okta-auth-java/pull/219
    • Bump maven-shade-plugin from 3.3.0 to 3.4.0 by @dependabot in https://github.com/okta/okta-auth-java/pull/221
    • Bump logback-classic from 1.4.0 to 1.4.1 by @dependabot in https://github.com/okta/okta-auth-java/pull/220
    • bump java mgmt sdk version to 8.2.2 by @arvindkrishnakumar-okta in https://github.com/okta/okta-auth-java/pull/222
    • suppress false positive cve by @arvindkrishnakumar-okta in https://github.com/okta/okta-auth-java/pull/223

    Full Changelog: https://github.com/okta/okta-auth-java/compare/okta-authn-parent-2.0.7...okta-authn-parent-2.0.8

    Source code(tar.gz)
    Source code(zip)
  • okta-authn-parent-2.0.7(Mar 30, 2022)

    • Bumped GH actions/checkout from 2 to 3 #148
    • Bumped maven-surefire-plugin from 2.22.0 to 2.22.2 #149
    • Bumped shiro-jaxrs from 1.8.0 to 1.9.0 #150
    • Bumped springboot.version from 2.6.4 to 2.6.5 #152
    • Bumped rest-assured to 5.0.0 #145
    • Bumped guice from 4.2.3 to 5.1.0 #154
    • Bumped maven-shade-plugin from 2.4.1 to 3.2.4 #155
    • Bumped mockito-core from 3.12.4 to 4.4.0 #156
    • Bumped guava from 30.1.1-jre to 31.1-jre #157
    • Bumped exec-maven-plugin from 1.6.0 to 3.0.0 #158
    • Bumped jackson-bom from 2.13.2 to 2.13.2.20220324 #160
    • Use zulu vm (instead of adopt-openj9) for Javadoc deployment #162
    Source code(tar.gz)
    Source code(zip)
  • okta-authn-parent-2.0.6(Mar 18, 2022)

  • okta-authn-parent-2.0.5(Mar 8, 2022)

  • okta-authn-parent-2.0.4(Dec 22, 2021)

    • Various README improvements.
    • Added sample webapp with basic flows for AuthN migration #118
    • Upgraded to springboot 2.6.2
    • Bumped Okta Mgmt SDK to 8.0.0
    • Bumped Jackson library to 2.13.1
    • Bumped dropwizard-bom to 2.0.28
    • Bumped logback-classic to 1.2.9
    • Bumped kotlin-stdlib & kotlin-stdlib-common transitive dep to 1.6.10
    Source code(tar.gz)
    Source code(zip)
  • okta-authn-parent-2.0.3(Sep 16, 2021)

    • #102 Adds build status to README
    • #105 README update to retire 1.x
    • #107 Add activation link request to AuthenticationClient
    • #111 Dependency updates done to libraries - guava (30.1.1-jre), shiro-jaxrs (1.8.0), hamcrest-jackson (1.2.0), rest-assured (4.4.0) & mockito-core (3.12.4)
    Source code(tar.gz)
    Source code(zip)
  • okta-authn-parent-2.0.2(Mar 1, 2021)

  • okta-authn-parent-2.0.1(Feb 12, 2021)

  • okta-authn-parent-2.0.0(Jul 28, 2020)

    This major release upgrades the Java Authentication SDK to v2.0.0

    Refer to Migration Guide for insights on these changes.

    Version 2.0.0 introduces a number of breaking changes from previous versions.

    In addition to new classes/interfaces, some existing classes/interfaces are no longer backward compatible.

    Package com.okta.authn.sdk.resource

    • Replaced com.okta.sdk.resource.user.factor.FactorProfile interface with com.okta.authn.sdk.resource.FactorProfile interface.
    • Replaced com.okta.sdk.resource.user.factor.FactorProvider interface with com.okta.authn.sdk.resource.FactorProvider interface.
    • Replaced com.okta.sdk.resource.user.factor.FactorType interface with com.okta.authn.sdk.resource.FactorType interface.

    Note: Old interfaces above were pulled in from okta-sdk-java Management SDK hitherto. These are now migrated to reside locally within this Authentication SDK.

    Below SDK classes were previously moved to okta-commons-java).

    - com.okta.sdk.client.Proxy
    - com.okta.sdk.lang.Classes
    - com.okta.sdk.lang.Assert
    - com.okta.sdk.lang.Strings
    - com.okta.sdk.lang.Collections
    - com.okta.sdk.lang.Locales
    
    Source code(tar.gz)
    Source code(zip)
  • okta-authn-parent-1.0.0(May 2, 2019)

  • okta-authn-parent-0.4.0(Mar 25, 2019)

  • okta-authn-parent-0.3.0(Feb 8, 2019)

  • okta-authn-parent-0.2.0(Oct 10, 2018)

    Updates:

    • Improved rate limit handling: allow setting of requestTimeout and maxRetries
    • Add configuration checks to help prevent common copy & paste errors (checks for things like {yourOktadomain} in the orgUrl
    • Added new method AuthenticationClient.verifyFactor() to simplify the process of polling for an async factors such as SMS or Push.

    Breaking Changes:

    • renamed AuthenticationClient pollFactor method to verifyActivation to better reflect the method's intent (it doesn't actually do polling, but it is the method you would use in your own polling loop while checking for the activation status of a new factor)
    Source code(tar.gz)
    Source code(zip)
  • okta-authn-parent-0.1.0(Jun 8, 2018)

Spring-security, swagger, db auth , RestAPI

Rest API Features Spring-security Swagger-UI DB based Authentication Role Based Access Spring AOP Steps To Use go to /login screen go to swagger-ui.ht

Aniruddha Stark 1 Mar 12, 2022
Java JWT: JSON Web Token for Java and Android

Java JWT: JSON Web Token for Java and Android JJWT aims to be the easiest to use and understand library for creating and verifying JSON Web Tokens (JW

null 8.8k Dec 30, 2022
Java Project based on Java and Encryption using Cryptography algorithms

Symmetric-Encryption-Cryptography-in-Java Java Project based on Java and Encryption using Cryptography algorithms Project Aim Develop Java program to

Muhammad Asad 6 Feb 3, 2022
A mitigation for CVE-2021-44228 (log4shell) that works by patching the vulnerability at runtime. (Works with any vulnerable java software, tested with java 6 and newer)

Log4jPatcher A Java Agent based mitigation for Log4j2 JNDI exploits. This agent employs 2 patches: Disabling all Lookup conversions (on supported Log4

null 45 Dec 16, 2022
Java binding to the Networking and Cryptography (NaCl) library with the awesomeness of libsodium

kalium - Java binding to the Networking and Cryptography (NaCl) library A Java binding to Networking and Cryptography library by Daniel J. Bernstein.

Bruno Oliveira da Silva 206 Oct 5, 2022
A small and easy-to-use one-time password generator library for Java according to RFC 4226 (HOTP) and RFC 6238 (TOTP).

OTP-Java A small and easy-to-use one-time password generator for Java according to RFC 4226 (HOTP) and RFC 6238 (TOTP). Table of Contents Features Ins

Bastiaan Jansen 106 Dec 30, 2022
Security engine for Java (authentication, authorization, multi frameworks): OAuth, CAS, SAML, OpenID Connect, LDAP, JWT...

pac4j is an easy and powerful security engine for Java to authenticate users, get their profiles and manage authorizations in order to secure web appl

PAC4J 2.2k Dec 30, 2022
Bouncy Castle Java Distribution (Mirror)

The Bouncy Castle Crypto Package For Java The Bouncy Castle Crypto package is a Java implementation of cryptographic algorithms, it was developed by t

Legion of the Bouncy Castle Inc 1.8k Dec 30, 2022
An authorization library that supports access control models like ACL, RBAC, ABAC in Java

jCasbin News: still worry about how to write the correct jCasbin policy? Casbin online editor is coming to help! Try it at: http://casbin.org/editor/

Casbin 2k Dec 30, 2022
PicketLink is a security framework for securing Java EE applications.

PicketLink http://picketlink.org Java EE Application Security Identity Management Federation Social REST Security Standard-based Security This reposit

PicketLink 92 Feb 21, 2022
OACC (Object ACcess Control) is an advanced Java Application Security Framework

OACC Java Application Security Framework What is OACC? OACC - pronounced [oak] - is a fully featured API to both enforce and manage your application's

null 103 Nov 24, 2022
JSON Web Token (JWT) implementation for Java with support for signatures (JWS), encryption (JWE) and web keys (JWK).

Nimbus JOSE+JWT Nimbus JOSE+JWT is a popular open source (Apache 2.0) Java library which implements the Javascript Object Signing and Encryption (JOSE

Connect2ID 35 Jul 1, 2022
破解 Java 混淆工具 Allatori

AllatoriCrack 基于当前最新的 7.6 版本 简介: 破解 Java 混淆工具 Allatori 官网 并进行了部分加密功能的小修改 allatori 本身使用方法特别简单 命令行输入 java -Xms128m -Xmx512m -jar allatori.jar config.xml

null 161 Jan 4, 2023
Amazon Selling Partner JAVA SDK SP API

amazon-sp-api amazon sp api java sdk 背景: 亚马逊(amazon)在2020年10月推出了新的替代mws的api方案,称为Selling Partner API(SP-API)。sp-api在修改原mws的接口方式的基础上引入了aws的IAM权限管理,增加了开发

penghp 93 Nov 20, 2022
Java bytecode obfuscator with GUI

Bozar A Java bytecode obfuscator with GUI Usage Download the version you want in releases for your platform Run the executable. Done. Let me know if o

null 101 Dec 31, 2022
A java implementation of Enigma, and a modern attack to decrypt it.

Java Enigma This is a Java implementation of an Enigma machine, along with code that attempts to break the encryption. This code is associated with an

Michael Pound 584 Jan 4, 2023
Engin Demiroğun düzenlemiş olduğu (Java & React) Yazılım Geliştirici Yetiştirme Kampında yapmış olduğum ödevleri içermektedir.

Java-React-Yazilim-Gelistirici-Yetistirme-Kampi-Odevler Engin Demiroğun düzenlemiş olduğu (Java & React) Yazılım Geliştirici Yetiştirme Kampında yapmı

Baran Emre Türkmen 2 Apr 26, 2022
Kodlamaio Yazılım Geliştirici Yetiştirme Kampı (JAVA + REACT) ödev listesidir.

JavaHomeworks Kodlamaio Yazılım Geliştirici Yetiştirme Kampı (JAVA + REACT) ödev listesidir. JavaRecapDemo1 kodlama.io ileri java kampı 2. gün ödevidi

Rahim Cubuk 3 May 10, 2021
Java solutions for LeetCode

leetcode-java Java solutions for LeetCode Environment Intellij IDEA 2021.2 JDK 16.0.1 Gradle 7.1 Junit 5.7 ProblemList # Title Difficulty Link Solutio

null 5 Aug 5, 2021