@POST @Path("/loginAuth") public Single<Response> loginAuth(@FormParam("username") String username, @FormParam("password") String password, @FormParam("return_url") String returnUrl, @Context Session session, @Context RoutingContext ctx, @Context AuthProvider auth) throws URISyntaxException { if (username == null || username.isEmpty() || password == null || password.isEmpty()) return Single.just(Response.status(Status.BAD_REQUEST).build()); JsonObject authInfo = new JsonObject().put("username", username).put("password", password); return auth.rxAuthenticate(authInfo).map(user -> { ctx.setUser(user); if (session != null) { // the user has upgraded from unauthenticated to authenticated // session should be upgraded as recommended by owasp session.regenerateId(); } String redirectUrl = session.remove(REDIRECT_KEY); if (redirectUrl == null) redirectUrl = returnUrl; if (redirectUrl == null) redirectUrl = "/"; try { return Response.status(Status.FOUND).location(new URI(redirectUrl)).build(); } catch (URISyntaxException e) { throw new RuntimeException(e); } }).onErrorReturn(t -> { return Response.status(Status.FORBIDDEN).entity(t.getMessage()).type(MediaType.TEXT_PLAIN).build(); }); }
final AuthProvider clientAuthProvider = new AuthProvider(new ClientAuthenticationProvider(clientSyncService)); final AuthProvider clientAssertionAuthProvider = new AuthProvider(new ClientAssertionAuthenticationProvider(clientAssertionService)); .append(ClientCredentialsAuthHandler.create(clientAuthProvider.getDelegate())) .append(ClientAssertionAuthHandler.create(clientAssertionAuthProvider.getDelegate())) .append(ClientBasicAuthHandler.create(clientAuthProvider.getDelegate())); userAuthProvider.getDelegate(), '/' + domain.getPath() + "/login");
auth != null ? io.vertx.rxjava.ext.auth.AuthProvider.newInstance(auth.getDelegate()) : null); ResteasyProviderFactory.pushContext(io.vertx.rxjava.ext.auth.User.class, context.user() != null ? io.vertx.rxjava.ext.auth.User.newInstance(context.user().getDelegate()) : null);
final AuthProvider userAuthProvider = new AuthProvider(new UserAuthenticationProvider(userAuthenticationManager, clientSyncService));
@Override protected AuthProvider setupAuthenticationRoutes() { JsonObject keycloackConfig = AppGlobals.get().getConfig().getJsonObject("keycloack"); OAuth2Auth authWeb = KeycloakAuth.create(AppGlobals.get().getVertx(), keycloackConfig); OAuth2Auth authApi = KeycloakAuth.create(AppGlobals.get().getVertx(), OAuth2FlowType.PASSWORD, keycloackConfig); // FIXME: URL OAuth2AuthHandler authHandler = OAuth2AuthHandler.create((OAuth2Auth) authWeb, "http://localhost:9000/callback"); Router router = AppGlobals.get().getRouter(); // FIXME: crazy!! AuthProvider authProvider = AuthProvider.newInstance(authWeb.getDelegate()); router.route().handler(UserSessionHandler.create(authProvider)); authHandler.setupCallback(router.get("/callback")); JWTAuth jwtAuth = JWTAuth.create(AppGlobals.get().getVertx(), new JWTAuthOptions(new JsonObject() .put("keyStore", AppGlobals.get().getConfig().getJsonObject("keystore")))); AppGlobals.get().setGlobal(JWTAuth.class, jwtAuth); JWTAuthHandler jwtAuthHandler = JWTAuthHandler.create(jwtAuth, "/wiki/api/token"); // FIXME: just use different routers router.route().handler(ctx -> { if(!ctx.request().uri().startsWith("/wiki/api/")) authHandler.handle(ctx); else jwtAuthHandler.handle(ctx); }); return AuthProvider.newInstance(authApi.getDelegate()); }
final AuthProvider clientAuthProvider = new AuthProvider(new ClientAuthenticationProvider(clientSyncService)); final AuthProvider clientAssertionAuthProvider = new AuthProvider(new ClientAssertionAuthenticationProvider(clientAssertionService)); .append(ClientCredentialsAuthHandler.create(clientAuthProvider.getDelegate())) .append(ClientAssertionAuthHandler.create(clientAssertionAuthProvider.getDelegate())) .append(ClientBasicAuthHandler.create(clientAuthProvider.getDelegate())); userAuthProvider.getDelegate(), '/' + domain.getPath() + "/login");
auth != null ? io.vertx.rxjava.ext.auth.AuthProvider.newInstance(auth.getDelegate()) : null); ResteasyProviderFactory.pushContext(io.vertx.rxjava.ext.auth.User.class, context.user() != null ? io.vertx.rxjava.ext.auth.User.newInstance(context.user().getDelegate()) : null);
final AuthProvider userAuthProvider = new AuthProvider(new UserAuthenticationProvider(userAuthenticationManager, clientSyncService));
@POST @Path("/loginAuth") public Single<Response> loginAuth(@FormParam("username") String username, @FormParam("password") String password, @FormParam("return_url") String returnUrl, @Context Session session, @Context RoutingContext ctx, @Context AuthProvider auth) throws URISyntaxException { if (username == null || username.isEmpty() || password == null || password.isEmpty()) return Single.just(Response.status(Status.BAD_REQUEST).build()); JsonObject authInfo = new JsonObject().put("username", username).put("password", password); return auth.rxAuthenticate(authInfo).map(user -> { ctx.setUser(user); if (session != null) { // the user has upgraded from unauthenticated to authenticated // session should be upgraded as recommended by owasp session.regenerateId(); } String redirectUrl = session.remove(REDIRECT_KEY); if (redirectUrl == null) redirectUrl = returnUrl; if (redirectUrl == null) redirectUrl = "/"; try { return Response.status(Status.FOUND).location(new URI(redirectUrl)).build(); } catch (URISyntaxException e) { throw new RuntimeException(e); } }).onErrorReturn(t -> { return Response.status(Status.FORBIDDEN).entity(t.getMessage()).type(MediaType.TEXT_PLAIN).build(); }); }
final AuthProvider identityProviderAuthProvider = new AuthProvider(new OAuth2ClientAuthenticationProvider(identityProviderManager, userAuthenticationManager)); .handler(new LoginRequestParseHandler(clientSyncService)) .handler(new LoginEndpointHandler(thymeleafTemplateEngine, domain, identityProviderManager)); router.post("/login").handler(FormLoginHandler.create(userAuthProvider.getDelegate())); .handler(OAuth2ClientAuthHandler.create(identityProviderAuthProvider.getDelegate(), identityProviderManager)) .handler(new LoginCallbackEndpointHandler());
User user; try { user = await(auth.rxAuthenticate(creds)); }catch(VertxException x) { return Response.status(Status.FORBIDDEN).build();
final AuthProvider identityProviderAuthProvider = new AuthProvider(new OAuth2ClientAuthenticationProvider(identityProviderManager, userAuthenticationManager)); .handler(new LoginRequestParseHandler(clientSyncService)) .handler(new LoginEndpointHandler(thymeleafTemplateEngine, domain, identityProviderManager)); router.post("/login").handler(FormLoginHandler.create(userAuthProvider.getDelegate())); .handler(OAuth2ClientAuthHandler.create(identityProviderAuthProvider.getDelegate(), identityProviderManager)) .handler(new LoginCallbackEndpointHandler());
User user; try { user = await(auth.rxAuthenticate(creds)); }catch(VertxException x) { return Response.status(Status.FORBIDDEN).build();