Coder Social home page Coder Social logo

immutant-keycloak's Introduction

immutant-keycloak

Example Ring web app served with Immutant and secured with Keycloak

Usage

  • You'll need a keycloak.json with your client configuration under resources/ folder
  • The example code expects that the client is configured to localhost:3030
  • lein run should be enough to start a web server

Technical details

The authentication is based on Keycloak's Undertow Adapter

License

Distributed under the Apache License 2.0

immutant-keycloak's People

Contributors

iperdomo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

immutant-keycloak's Issues

Hitting Exception (UnrecognizedPropertyException: Unrecognized field) while running this

Caused by: com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "confidential-port" (class org.keycloak.representations.adapters.config.AdapterConfig), not marked as ignorable (35 known properties: "ssl-required", "cors-allowed-headers", "register-node-period", "turn-off-change-session-id-on-login", "truststore", "always-refresh-token", "client-key-password", "policy-enforcer", "token-store", "resource", "realm", "public-key-cache-ttl", "proxy-url", "disable-trust-manager", "bearer-only", "autodetect-bearer-only", "truststore-password", "use-resource-role-mappings", "connection-pool-size", "client-keystore", "register-node-at-startup", "client-keystore-password", "auth-server-url", "cors-allowed-methods", "public-client", "expose-token", "token-minimum-time-to-live", "enable-basic-auth", "min-time-between-jwks-requests", "cors-max-age", "enable-cors", "allow-any-hostname", "realm-public-key", "credentials", "principal-attribute"])
 at [Source: java.io.BufferedInputStream@29d33f1; line: 7, column: 27] (through reference chain: org.keycloak.representations.adapters.config.AdapterConfig["confidential-port"])
        at com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:51)
        at com.fasterxml.jackson.databind.DeserializationContext.reportUnknownProperty(DeserializationContext.java:817)
        at com.fasterxml.jackson.databind.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:958)
        at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownProperty(BeanDeserializerBase.java:1324)
        at com.fasterxml.jackson.databind.deser.BeanDeserializerBase.handleUnknownVanilla(BeanDeserializerBase.java:1302)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.vanillaDeserialize(BeanDeserializer.java:249)
        at com.fasterxml.jackson.databind.deser.BeanDeserializer.deserialize(BeanDeserializer.java:136)
        at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3564)
        at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2650)
        at org.keycloak.adapters.KeycloakDeploymentBuilder.loadAdapterConfig(KeycloakDeploymentBuilder.java:145)
        ... 25 more

My keycloak.json contains,

{
    "realm": "asaas",
    "auth-server-url": "http://localhost:8080/auth/",
    "ssl-required": "external",
    "resource": "asaas",
    "public-client": true,
    "confidential-port": 0
}

Error on `lein run`

On lein run I get:

Exception in thread "main" java.lang.IllegalArgumentException: Cannot open <nil> as an InputStream., compiling:(/tmp/form-init6108651101597402474.clj:1:73)
    at clojure.lang.Compiler.load(Compiler.java:7391)
    at clojure.lang.Compiler.loadFile(Compiler.java:7317)
    at clojure.main$load_script.invokeStatic(main.clj:275)
    at clojure.main$init_opt.invokeStatic(main.clj:277)
    at clojure.main$init_opt.invoke(main.clj:277)
    at clojure.main$initialize.invokeStatic(main.clj:308)
    at clojure.main$null_opt.invokeStatic(main.clj:342)
    at clojure.main$null_opt.invoke(main.clj:339)
    at clojure.main$main.invokeStatic(main.clj:421)
    at clojure.main$main.doInvoke(main.clj:384)
    at clojure.lang.RestFn.invoke(RestFn.java:421)
    at clojure.lang.Var.invoke(Var.java:383)
    at clojure.lang.AFn.applyToHelper(AFn.java:156)
    at clojure.lang.Var.applyTo(Var.java:700)
    at clojure.main.main(main.java:37)
Caused by: java.lang.IllegalArgumentException: Cannot open <nil> as an InputStream.
    at clojure.java.io$fn__9498.invokeStatic(io.clj:167)
    at clojure.java.io$fn__9498.invoke(io.clj:167)
    at clojure.java.io$fn__9433$G__9426__9440.invoke(io.clj:69)
    at clojure.java.io$input_stream.invokeStatic(io.clj:136)
    at clojure.java.io$input_stream.doInvoke(io.clj:121)
    at clojure.lang.RestFn.invoke(RestFn.java:410)
    at immutant_keycloak.core$wrap_security.invokeStatic(core.clj:41)
    at immutant_keycloak.core$wrap_security.invoke(core.clj:39)
    at immutant_keycloak.core$_main.invokeStatic(core.clj:90)
    at immutant_keycloak.core$_main.invoke(core.clj:89)
    at clojure.lang.Var.invoke(Var.java:375)
    at user$eval5.invokeStatic(form-init6108651101597402474.clj:1)
    at user$eval5.invoke(form-init6108651101597402474.clj:1)
    at clojure.lang.Compiler.eval(Compiler.java:6927)
    at clojure.lang.Compiler.eval(Compiler.java:6917)
    at clojure.lang.Compiler.load(Compiler.java:7379)
    ... 14 more

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.