private String uri(String path) { return Msc.specialUri(path); }
model.put("adminUrl", ReqInfoUtils.adminUrl()); model.put("loginUri", Msc.specialUri("login")); model.put("logoutUri", Msc.specialUri("logout")); model.put("profileUri", Msc.semiSpecialUri("profile")); model.put("graphsUri", Msc.specialUri("graphs"));
public static void bootstrap(Setup setup) { OpenAPIDescriptor descriptor = new OpenAPIDescriptor(setup, Conf.OPENAPI); setup.get(Msc.specialUri("api/openapi.json")) .internal(true) .json(descriptor::getAPIDocs); setup.get(Msc.specialUri("api/openapi.yaml")) .internal(true) .plain(() -> YAML.stringify(descriptor.getAPIDocs())); }
String name = provider.getName().toLowerCase(); String loginUri = Msc.specialUri(name + "Login"); String callbackUri = Msc.specialUri(name + "OauthCallback"); final String loginPage = loginHtml.toString(); setup.get(Msc.specialUri("oauth")) .internal(true) .mvc((ReqHandler) x -> GUI.hardcoded(loginPage));
protected Object page(Req req, Resp resp, Throwable error) { if (error instanceof SecurityException) { resp.model("embedded", req.attr("_embedded", false)); resp.model("req", req); resp.model("loginUri", Msc.specialUri("login")); return resp.code(403).view("login").mvc(true); } else { BasicConfig zone = HttpUtils.zone(req); String home = zone.entry("home").or("/"); Map<String, ?> errorInfo = HttpUtils.getErrorInfo(resp, error); resp.model("req", req); resp.model("error", errorInfo); resp.model("home", home); return resp.mvc(true).view("error"); } }
public static String getLoginURL(Req req, OAuthProvider provider, String oauthDomain) { if (OAUTH.isEmpty()) { Log.warn("OAuth is not configured!"); } String name = provider.getName().toLowerCase(); Config providerConfig = OAUTH.sub(name); Value<String> clientId = providerConfig.entry("clientId").str(); Value<String> clientSecret = providerConfig.entry("clientSecret").str(); String callbackPath = Msc.specialUri(name + "OauthCallback"); boolean popup = req.param("popup", null) != null; String redirectUrl = U.notEmpty(oauthDomain) ? oauthDomain + callbackPath : HttpUtils.constructUrl(req, callbackPath); String statePrefix = popup ? "P" : "N"; String state = statePrefix + STATE_CHECK.generateState(clientSecret, req.sessionId()); try { OAuthClientRequest request = OAuthClientRequest.authorizationLocation(provider.getAuthEndpoint()) .setClientId(clientId.str().get()).setRedirectURI(redirectUrl).setScope(provider.getEmailScope()) .setState(state).setResponseType("code").buildQueryMessage(); return request.getLocationUri(); } catch (OAuthSystemException e) { throw U.rte(e); } }
static String uri(String path) { return Msc.specialUri(path); }
protected Object page(Req req, Resp resp, Throwable error) { if (error instanceof SecurityException) { resp.model("embedded", req.attr("_embedded", false)); resp.model("req", req); resp.model("loginUri", Msc.specialUri("login")); return resp.code(403).view("login").mvc(true); } else { BasicConfig zone = HttpUtils.zone(req); String home = zone.entry("home").or("/"); Map<String, ?> errorInfo = HttpUtils.getErrorInfo(resp, error); resp.model("req", req); resp.model("error", errorInfo); resp.model("home", home); return resp.mvc(true).view("error"); } }