@@ -199,4 +199,22 @@ var _ = Describe("Keycloak OIDC Provider Tests", func() {
199199 Expect(existingSession.Groups).To(BeEquivalentTo([]string{"role:write", "role:default:read"}))
200200 })
201201 })
202+
203+ Context("Create new session from token", func() {
204+ It("should create a session and extract roles ", func() {
205+ server, provider := newTestKeycloakOIDCSetup()
206+ url, err := url.Parse(server.URL)
207+ Expect(err).To(BeNil())
208+ defer server.Close()
209+
210+ provider.ProfileURL = url
211+
212+ session, err := provider.CreateSessionFromToken(context.Background(), getAccessToken())
213+ Expect(err).To(BeNil())
214+ Expect(session.ExpiresOn).ToNot(BeNil())
215+ Expect(session.CreatedAt).ToNot(BeNil())
216+ Expect(session.Groups).To(BeEquivalentTo([]string{"role:write", "role:default:read"}))
217+ })
218+ })
219+
202220})