ory / sdk

The place where ORY's SDKs are being auto-generated
Apache License 2.0
141 stars 85 forks source link

Can't get a self-service login flow for APIs with the java api wrapper. #209

Closed Palomox closed 2 years ago

Palomox commented 2 years ago

Preflight checklist

Describe the bug

Calling V0Alpha2Api#initializeSelfServiceLoginFlowWithoutBrowser(false, null, null) to initialize a self-service login flow causes the following exception:

Exception in thread "main" java.lang.IllegalArgumentException: Can not set sh.ory.model.UiNodeAttributes field sh.ory.model.UiNode.attributes to sh.ory.model.UiNodeInputAttributes
    at java.base/jdk.internal.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167)
    at java.base/jdk.internal.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171)
    at java.base/jdk.internal.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81)
    at java.base/java.lang.reflect.Field.set(Field.java:799)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:166)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:266)
    at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41)
    at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:82)
    at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:61)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:161)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:266)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:161)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:266)
    at com.google.gson.Gson.fromJson(Gson.java:1058)
    at com.google.gson.Gson.fromJson(Gson.java:1016)
    at com.google.gson.Gson.fromJson(Gson.java:959)
    at sh.ory.JSON.deserialize(JSON.java:249)
    at sh.ory.ApiClient.deserialize(ApiClient.java:960)
    at sh.ory.ApiClient.handleResponse(ApiClient.java:1168)
    at sh.ory.ApiClient.execute(ApiClient.java:1092)
    at sh.ory.api.V0alpha2Api.initializeSelfServiceLoginFlowWithoutBrowserWithHttpInfo(V0alpha2Api.java:8746)
    at sh.ory.api.V0alpha2Api.initializeSelfServiceLoginFlowWithoutBrowser(V0alpha2Api.java:8723)

This makes it impossible for me to initialize a self-service login flow from my API.

Reproducing the bug

  1. Create a java project with sh.ory:ory-client:0.2.0-alpha.25 as dependency
  2. Create a class with the following content:

    public class Test {
    public static void main(String[] args) {
        ApiClient client = new ApiClient();
        client.setBasePath("https://playground.projects.oryapis.com");
        V0alpha2Api api = new V0alpha2Api(client);
    
        try {
            api.initializeSelfServiceLoginFlowWithoutBrowser(false, null, null);
        } catch (ApiException e) {
            e.printStackTrace();
        }
    }
    } 
    1. Run the java class and wait for the exception in the console.

Relevant log output

Exception in thread "main" java.lang.IllegalArgumentException: Can not set sh.ory.model.UiNodeAttributes field sh.ory.model.UiNode.attributes to sh.ory.model.UiNodeInputAttributes
    at java.base/jdk.internal.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167)
    at java.base/jdk.internal.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171)
    at java.base/jdk.internal.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81)
    at java.base/java.lang.reflect.Field.set(Field.java:799)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:166)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:266)
    at com.google.gson.internal.bind.TypeAdapterRuntimeTypeWrapper.read(TypeAdapterRuntimeTypeWrapper.java:41)
    at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:82)
    at com.google.gson.internal.bind.CollectionTypeAdapterFactory$Adapter.read(CollectionTypeAdapterFactory.java:61)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:161)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:266)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:161)
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:266)
    at com.google.gson.Gson.fromJson(Gson.java:1058)
    at com.google.gson.Gson.fromJson(Gson.java:1016)
    at com.google.gson.Gson.fromJson(Gson.java:959)
    at sh.ory.JSON.deserialize(JSON.java:249)
    at sh.ory.ApiClient.deserialize(ApiClient.java:960)
    at sh.ory.ApiClient.handleResponse(ApiClient.java:1168)
    at sh.ory.ApiClient.execute(ApiClient.java:1092)
    at sh.ory.api.V0alpha2Api.initializeSelfServiceLoginFlowWithoutBrowserWithHttpInfo(V0alpha2Api.java:8746)
    at sh.ory.api.V0alpha2Api.initializeSelfServiceLoginFlowWithoutBrowser(V0alpha2Api.java:8723)
    at io.github.palomox.test.Test.main(Test.java:14)

Relevant configuration

No response

Version

ory-client for java, version 0.2.0-alpha.25. Ory cloud.

On which operating system are you observing this issue?

Ory Cloud

In which environment are you deploying?

Ory Cloud

Additional Context

No response

Palomox commented 2 years ago

fixed by #210 , works as intended now, thanks.