javax.ws.rs.core.Response Scala Examples
The following examples show how to use javax.ws.rs.core.Response.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
Example 1
Source File: SecurityFilter.scala From multi-tenancy-spark with Apache License 2.0 | 5 votes |
package org.apache.spark.status.api.v1 import javax.ws.rs.container.{ContainerRequestContext, ContainerRequestFilter} import javax.ws.rs.core.Response import javax.ws.rs.ext.Provider @Provider private[v1] class SecurityFilter extends ContainerRequestFilter with UIRootFromServletContext { override def filter(req: ContainerRequestContext): Unit = { val user = Option(req.getSecurityContext.getUserPrincipal).map { _.getName }.orNull if (!uiRoot.securityManager.checkUIViewPermissions(user)) { req.abortWith( Response .status(Response.Status.FORBIDDEN) .entity(raw"""user "$user"is not authorized""") .build() ) } } }
Example 2
Source File: HealthCheckResource.scala From orders-aws with Apache License 2.0 | 5 votes |
package works.weave.socks.aws.orders.presentation.resource import java.net.URI import java.util.Calendar; import java.util.Date; import javax.ws.rs.GET import javax.ws.rs.Path import javax.ws.rs.core.Response import org.slf4j.LoggerFactory import org.springframework.stereotype.Component import works.weave.socks.aws.orders.presentation.resource.HealthCheckResource._ import works.weave.socks.spring.aws.DynamoConfiguration @Component @Path("health") class HealthCheckResource(dynamoConnection : DynamoConfiguration) { @GET def getHealthCheck() : Response = { Log.info("health check requested") val dateNow = Calendar.getInstance().getTime(); val ordersHealth = Map( "service" -> "orders-aws", "status" -> "OK", "time" -> dateNow) val dynamoDBHealth = scala.collection.mutable.Map( "service" -> "orders-aws-dynamodb", "status" -> "OK", "time" -> dateNow) try { val table = dynamoConnection.client.describeTable("orders") } catch { case unknown : Throwable => dynamoDBHealth("status") = "err" } val map = Map("health" -> Array(ordersHealth, dynamoDBHealth)) Log.info("health check completed") Response.created(new URI("http://tbd")).entity(map).build() } } object HealthCheckResource { val Log = LoggerFactory.getLogger(classOf[HealthCheckResource]) }
Example 3
Source File: EventLogDownloadResource.scala From BigDatalog with Apache License 2.0 | 5 votes |
package org.apache.spark.status.api.v1 import java.io.OutputStream import java.util.zip.ZipOutputStream import javax.ws.rs.{GET, Produces} import javax.ws.rs.core.{MediaType, Response, StreamingOutput} import scala.util.control.NonFatal import org.apache.spark.{Logging, SparkConf} import org.apache.spark.deploy.SparkHadoopUtil @Produces(Array(MediaType.APPLICATION_OCTET_STREAM)) private[v1] class EventLogDownloadResource( val uIRoot: UIRoot, val appId: String, val attemptId: Option[String]) extends Logging { val conf = SparkHadoopUtil.get.newConfiguration(new SparkConf) @GET def getEventLogs(): Response = { try { val fileName = { attemptId match { case Some(id) => s"eventLogs-$appId-$id.zip" case None => s"eventLogs-$appId.zip" } } val stream = new StreamingOutput { override def write(output: OutputStream): Unit = { val zipStream = new ZipOutputStream(output) try { uIRoot.writeEventLogs(appId, attemptId, zipStream) } finally { zipStream.close() } } } Response.ok(stream) .header("Content-Disposition", s"attachment; filename=$fileName") .header("Content-Type", MediaType.APPLICATION_OCTET_STREAM) .build() } catch { case NonFatal(e) => Response.serverError() .entity(s"Event logs are not available for app: $appId.") .status(Response.Status.SERVICE_UNAVAILABLE) .build() } } }
Example 4
Source File: SecurityFilter.scala From BigDatalog with Apache License 2.0 | 5 votes |
package org.apache.spark.status.api.v1 import javax.ws.rs.WebApplicationException import javax.ws.rs.core.Response import com.sun.jersey.spi.container.{ContainerRequest, ContainerRequestFilter} private[v1] class SecurityFilter extends ContainerRequestFilter with UIRootFromServletContext { def filter(req: ContainerRequest): ContainerRequest = { val user = Option(req.getUserPrincipal).map { _.getName }.orNull if (uiRoot.securityManager.checkUIViewPermissions(user)) { req } else { throw new WebApplicationException( Response .status(Response.Status.FORBIDDEN) .entity(raw"""user "$user"is not authorized""") .build() ) } } }
Example 5
Source File: SimpleDateParam.scala From BigDatalog with Apache License 2.0 | 5 votes |
package org.apache.spark.status.api.v1 import java.text.{ParseException, SimpleDateFormat} import java.util.TimeZone import javax.ws.rs.WebApplicationException import javax.ws.rs.core.Response import javax.ws.rs.core.Response.Status private[v1] class SimpleDateParam(val originalValue: String) { val timestamp: Long = { val format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSz") try { format.parse(originalValue).getTime() } catch { case _: ParseException => val gmtDay = new SimpleDateFormat("yyyy-MM-dd") gmtDay.setTimeZone(TimeZone.getTimeZone("GMT")) try { gmtDay.parse(originalValue).getTime() } catch { case _: ParseException => throw new WebApplicationException( Response .status(Status.BAD_REQUEST) .entity("Couldn't parse date: " + originalValue) .build() ) } } } }
Example 6
Source File: SecurityFilter.scala From Spark-2.3.1 with Apache License 2.0 | 5 votes |
package org.apache.spark.status.api.v1 import javax.ws.rs.container.{ContainerRequestContext, ContainerRequestFilter} import javax.ws.rs.core.Response import javax.ws.rs.ext.Provider @Provider private[v1] class SecurityFilter extends ContainerRequestFilter with ApiRequestContext { override def filter(req: ContainerRequestContext): Unit = { val user = httpRequest.getRemoteUser() if (!uiRoot.securityManager.checkUIViewPermissions(user)) { req.abortWith( Response .status(Response.Status.FORBIDDEN) .entity(raw"""user "$user" is not authorized""") .build() ) } } }
Example 7
Source File: SimpleDateParam.scala From Spark-2.3.1 with Apache License 2.0 | 5 votes |
package org.apache.spark.status.api.v1 import java.text.{ParseException, SimpleDateFormat} import java.util.{Locale, TimeZone} import javax.ws.rs.WebApplicationException import javax.ws.rs.core.Response import javax.ws.rs.core.Response.Status private[v1] class SimpleDateParam(val originalValue: String) { val timestamp: Long = { val format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSz", Locale.US) try { format.parse(originalValue).getTime() } catch { case _: ParseException => val gmtDay = new SimpleDateFormat("yyyy-MM-dd", Locale.US) gmtDay.setTimeZone(TimeZone.getTimeZone("GMT")) try { gmtDay.parse(originalValue).getTime() } catch { case _: ParseException => throw new WebApplicationException( Response .status(Status.BAD_REQUEST) .entity("Couldn't parse date: " + originalValue) .build() ) } } } }
Example 8
Source File: EventLogDownloadResource.scala From spark1.52 with Apache License 2.0 | 5 votes |
package org.apache.spark.status.api.v1 import java.io.OutputStream import java.util.zip.ZipOutputStream import javax.ws.rs.{GET, Produces} import javax.ws.rs.core.{MediaType, Response, StreamingOutput} import scala.util.control.NonFatal import org.apache.spark.{Logging, SparkConf} import org.apache.spark.deploy.SparkHadoopUtil @Produces(Array(MediaType.APPLICATION_OCTET_STREAM)) private[v1] class EventLogDownloadResource( val uIRoot: UIRoot, val appId: String, val attemptId: Option[String]) extends Logging { val conf = SparkHadoopUtil.get.newConfiguration(new SparkConf) @GET def getEventLogs(): Response = { try { val fileName = { attemptId match { case Some(id) => s"eventLogs-$appId-$id.zip" case None => s"eventLogs-$appId.zip" } } //实现StreamingOutput接口 val stream = new StreamingOutput { override def write(output: OutputStream): Unit = { //ZipOutputStream实现打包 val zipStream = new ZipOutputStream(output) try { uIRoot.writeEventLogs(appId, attemptId, zipStream) } finally { zipStream.close() } } } Response.ok(stream) .header("Content-Disposition", s"attachment; filename=$fileName") .header("Content-Type", MediaType.APPLICATION_OCTET_STREAM) .build() } catch { case NonFatal(e) => Response.serverError() .entity(s"Event logs are not available for app: $appId.") .status(Response.Status.SERVICE_UNAVAILABLE) .build() } } }
Example 9
Source File: SecurityFilter.scala From spark1.52 with Apache License 2.0 | 5 votes |
package org.apache.spark.status.api.v1 import javax.ws.rs.WebApplicationException import javax.ws.rs.core.Response import com.sun.jersey.spi.container.{ContainerRequest, ContainerRequestFilter} private[v1] class SecurityFilter extends ContainerRequestFilter with UIRootFromServletContext { def filter(req: ContainerRequest): ContainerRequest = { val user = Option(req.getUserPrincipal).map { _.getName }.orNull if (uiRoot.securityManager.checkUIViewPermissions(user)) { req } else { throw new WebApplicationException( Response .status(Response.Status.FORBIDDEN) .entity(raw"""user "$user"is not authorized""") .build() ) } } }
Example 10
Source File: SimpleDateParam.scala From spark1.52 with Apache License 2.0 | 5 votes |
package org.apache.spark.status.api.v1 import java.text.{ParseException, SimpleDateFormat} import java.util.TimeZone import javax.ws.rs.WebApplicationException import javax.ws.rs.core.Response import javax.ws.rs.core.Response.Status private[v1] class SimpleDateParam(val originalValue: String) { val timestamp: Long = { val format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSz") try { format.parse(originalValue).getTime() } catch { case _: ParseException => val gmtDay = new SimpleDateFormat("yyyy-MM-dd") gmtDay.setTimeZone(TimeZone.getTimeZone("GMT")) try { gmtDay.parse(originalValue).getTime() } catch { case _: ParseException => throw new WebApplicationException( Response .status(Status.BAD_REQUEST) .entity("Couldn't parse date: " + originalValue) .build() ) } } } }
Example 11
Source File: SecurityFilter.scala From iolap with Apache License 2.0 | 5 votes |
package org.apache.spark.status.api.v1 import javax.ws.rs.WebApplicationException import javax.ws.rs.core.Response import com.sun.jersey.spi.container.{ContainerRequest, ContainerRequestFilter} private[v1] class SecurityFilter extends ContainerRequestFilter with UIRootFromServletContext { def filter(req: ContainerRequest): ContainerRequest = { val user = Option(req.getUserPrincipal).map { _.getName }.orNull if (uiRoot.securityManager.checkUIViewPermissions(user)) { req } else { throw new WebApplicationException( Response .status(Response.Status.FORBIDDEN) .entity(raw"""user "$user"is not authorized""") .build() ) } } }
Example 12
Source File: SimpleDateParam.scala From iolap with Apache License 2.0 | 5 votes |
package org.apache.spark.status.api.v1 import java.text.SimpleDateFormat import java.util.TimeZone import javax.ws.rs.WebApplicationException import javax.ws.rs.core.Response import javax.ws.rs.core.Response.Status import scala.util.Try private[v1] class SimpleDateParam(val originalValue: String) { val timestamp: Long = { SimpleDateParam.formats.collectFirst { case fmt if Try(fmt.parse(originalValue)).isSuccess => fmt.parse(originalValue).getTime() }.getOrElse( throw new WebApplicationException( Response .status(Status.BAD_REQUEST) .entity("Couldn't parse date: " + originalValue) .build() ) ) } } private[v1] object SimpleDateParam { val formats: Seq[SimpleDateFormat] = { val gmtDay = new SimpleDateFormat("yyyy-MM-dd") gmtDay.setTimeZone(TimeZone.getTimeZone("GMT")) Seq( new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSz"), gmtDay ) } }
Example 13
Source File: EventLogDownloadResource.scala From multi-tenancy-spark with Apache License 2.0 | 5 votes |
package org.apache.spark.status.api.v1 import java.io.OutputStream import java.util.zip.ZipOutputStream import javax.ws.rs.{GET, Produces} import javax.ws.rs.core.{MediaType, Response, StreamingOutput} import scala.util.control.NonFatal import org.apache.spark.SparkConf import org.apache.spark.deploy.SparkHadoopUtil import org.apache.spark.internal.Logging @Produces(Array(MediaType.APPLICATION_OCTET_STREAM)) private[v1] class EventLogDownloadResource( val uIRoot: UIRoot, val appId: String, val attemptId: Option[String]) extends Logging { val conf = SparkHadoopUtil.get.newConfiguration(new SparkConf) @GET def getEventLogs(): Response = { try { val fileName = { attemptId match { case Some(id) => s"eventLogs-$appId-$id.zip" case None => s"eventLogs-$appId.zip" } } val stream = new StreamingOutput { override def write(output: OutputStream): Unit = { val zipStream = new ZipOutputStream(output) try { uIRoot.writeEventLogs(appId, attemptId, zipStream) } finally { zipStream.close() } } } Response.ok(stream) .header("Content-Disposition", s"attachment; filename=$fileName") .header("Content-Type", MediaType.APPLICATION_OCTET_STREAM) .build() } catch { case NonFatal(e) => Response.serverError() .entity(s"Event logs are not available for app: $appId.") .status(Response.Status.SERVICE_UNAVAILABLE) .build() } } }
Example 14
Source File: SimpleDateParam.scala From drizzle-spark with Apache License 2.0 | 5 votes |
package org.apache.spark.status.api.v1 import java.text.{ParseException, SimpleDateFormat} import java.util.TimeZone import javax.ws.rs.WebApplicationException import javax.ws.rs.core.Response import javax.ws.rs.core.Response.Status private[v1] class SimpleDateParam(val originalValue: String) { val timestamp: Long = { val format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSz") try { format.parse(originalValue).getTime() } catch { case _: ParseException => val gmtDay = new SimpleDateFormat("yyyy-MM-dd") gmtDay.setTimeZone(TimeZone.getTimeZone("GMT")) try { gmtDay.parse(originalValue).getTime() } catch { case _: ParseException => throw new WebApplicationException( Response .status(Status.BAD_REQUEST) .entity("Couldn't parse date: " + originalValue) .build() ) } } } }
Example 15
Source File: SimpleDateParam.scala From multi-tenancy-spark with Apache License 2.0 | 5 votes |
package org.apache.spark.status.api.v1 import java.text.{ParseException, SimpleDateFormat} import java.util.{Locale, TimeZone} import javax.ws.rs.WebApplicationException import javax.ws.rs.core.Response import javax.ws.rs.core.Response.Status private[v1] class SimpleDateParam(val originalValue: String) { val timestamp: Long = { val format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSz", Locale.US) try { format.parse(originalValue).getTime() } catch { case _: ParseException => val gmtDay = new SimpleDateFormat("yyyy-MM-dd", Locale.US) gmtDay.setTimeZone(TimeZone.getTimeZone("GMT")) try { gmtDay.parse(originalValue).getTime() } catch { case _: ParseException => throw new WebApplicationException( Response .status(Status.BAD_REQUEST) .entity("Couldn't parse date: " + originalValue) .build() ) } } } }
Example 16
Source File: EventLogDownloadResource.scala From sparkoscope with Apache License 2.0 | 5 votes |
package org.apache.spark.status.api.v1 import java.io.OutputStream import java.util.zip.ZipOutputStream import javax.ws.rs.{GET, Produces} import javax.ws.rs.core.{MediaType, Response, StreamingOutput} import scala.util.control.NonFatal import org.apache.spark.SparkConf import org.apache.spark.deploy.SparkHadoopUtil import org.apache.spark.internal.Logging @Produces(Array(MediaType.APPLICATION_OCTET_STREAM)) private[v1] class EventLogDownloadResource( val uIRoot: UIRoot, val appId: String, val attemptId: Option[String]) extends Logging { val conf = SparkHadoopUtil.get.newConfiguration(new SparkConf) @GET def getEventLogs(): Response = { try { val fileName = { attemptId match { case Some(id) => s"eventLogs-$appId-$id.zip" case None => s"eventLogs-$appId.zip" } } val stream = new StreamingOutput { override def write(output: OutputStream): Unit = { val zipStream = new ZipOutputStream(output) try { uIRoot.writeEventLogs(appId, attemptId, zipStream) } finally { zipStream.close() } } } Response.ok(stream) .header("Content-Disposition", s"attachment; filename=$fileName") .header("Content-Type", MediaType.APPLICATION_OCTET_STREAM) .build() } catch { case NonFatal(e) => Response.serverError() .entity(s"Event logs are not available for app: $appId.") .status(Response.Status.SERVICE_UNAVAILABLE) .build() } } }
Example 17
Source File: SecurityFilter.scala From sparkoscope with Apache License 2.0 | 5 votes |
package org.apache.spark.status.api.v1 import javax.ws.rs.container.{ContainerRequestContext, ContainerRequestFilter} import javax.ws.rs.core.Response import javax.ws.rs.ext.Provider @Provider private[v1] class SecurityFilter extends ContainerRequestFilter with UIRootFromServletContext { override def filter(req: ContainerRequestContext): Unit = { val user = Option(req.getSecurityContext.getUserPrincipal).map { _.getName }.orNull if (!uiRoot.securityManager.checkUIViewPermissions(user)) { req.abortWith( Response .status(Response.Status.FORBIDDEN) .entity(raw"""user "$user"is not authorized""") .build() ) } } }
Example 18
Source File: SimpleDateParam.scala From sparkoscope with Apache License 2.0 | 5 votes |
package org.apache.spark.status.api.v1 import java.text.{ParseException, SimpleDateFormat} import java.util.{Locale, TimeZone} import javax.ws.rs.WebApplicationException import javax.ws.rs.core.Response import javax.ws.rs.core.Response.Status private[v1] class SimpleDateParam(val originalValue: String) { val timestamp: Long = { val format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSz", Locale.US) try { format.parse(originalValue).getTime() } catch { case _: ParseException => val gmtDay = new SimpleDateFormat("yyyy-MM-dd", Locale.US) gmtDay.setTimeZone(TimeZone.getTimeZone("GMT")) try { gmtDay.parse(originalValue).getTime() } catch { case _: ParseException => throw new WebApplicationException( Response .status(Status.BAD_REQUEST) .entity("Couldn't parse date: " + originalValue) .build() ) } } } }
Example 19
Source File: ExceptionHandler.scala From maha with Apache License 2.0 | 5 votes |
// Copyright 2017, Yahoo Holdings Inc. // Licensed under the terms of the Apache License 2.0. Please see LICENSE file in project root for terms. package com.yahoo.maha.api.jersey import javax.ws.rs.core.{MediaType, Response} import javax.ws.rs.ext.{ExceptionMapper, Provider} import com.yahoo.maha.service.error.{MahaServiceExecutionException, MahaServiceBadRequestException} import grizzled.slf4j.Logging import scala.beans.BeanProperty @Provider class GenericExceptionMapper extends ExceptionMapper[Throwable] with Logging { override def toResponse(e: Throwable): Response = { val response: Response = { e match { case iae: IllegalArgumentException => Response.status(Response.Status.BAD_REQUEST).entity(Error(iae.getMessage)).`type`(MediaType.APPLICATION_JSON).build() case NotFoundException(error) => Response.status(Response.Status.BAD_REQUEST).entity(error).`type`(MediaType.APPLICATION_JSON).build() case MahaServiceBadRequestException(message, source) => Response.status(Response.Status.BAD_REQUEST).entity(Error(message)).`type`(MediaType.APPLICATION_JSON).build() case MahaServiceExecutionException(message, source) => source match { case Some(e) if e.isInstanceOf[IllegalArgumentException] => Response.status(Response.Status.BAD_REQUEST).entity(e.getMessage).`type`(MediaType.APPLICATION_JSON).build() case _ => Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Error(message)).`type`(MediaType.APPLICATION_JSON).build() } case _ => Response.status(Response.Status.INTERNAL_SERVER_ERROR).entity(Error(s"$e")).`type`(MediaType.APPLICATION_JSON).build() } } error(s"response status: ${response.getStatus} , response entity: ${response.getEntity}") response } } case class Error(@BeanProperty errorMsg: String) case class NotFoundException(error: Error) extends Exception
Example 20
Source File: UserAuthenticationImpl.scala From meteorite-core with Apache License 2.0 | 5 votes |
package bi.meteorite.core.security.rest import javax.inject.{Inject, Singleton} import javax.ws.rs.core.Response import bi.meteorite.core.api.security.AdminLoginService import bi.meteorite.core.api.security.rest.{UserAuthentication, UserService} import org.ops4j.pax.cdi.api.{OsgiService, OsgiServiceProvider} @OsgiServiceProvider(classes = Array(classOf[UserAuthentication])) @Singleton class UserAuthenticationImpl extends UserAuthentication { @Inject @volatile @OsgiService private var adminLoginService: AdminLoginService = null override def logout(username: String) : Response = { if(adminLoginService.logout(username)){ Response.ok().build() } else{ Response.serverError().build() } } def setAdminLoginService(adminLoginService: AdminLoginService) = this.adminLoginService = adminLoginService }
Example 21
Source File: TokenAuthorizingFilter.scala From meteorite-core with Apache License 2.0 | 5 votes |
package bi.meteorite.core.security.authorization import javax.annotation.Priority import javax.inject.{Inject, Named, Singleton} import javax.ws.rs.Priorities import javax.ws.rs.container.{ContainerRequestContext, ContainerRequestFilter} import javax.ws.rs.core.Response import org.apache.cxf.interceptor.security.AccessDeniedException import org.apache.cxf.jaxrs.utils.JAXRSUtils @Priority(Priorities.AUTHORIZATION) @Singleton @Named("authorizationFilter") class TokenAuthorizingFilter extends ContainerRequestFilter { @Inject @Named("authorizationInterceptor") private var interceptor: TokenAuthorizingInterceptor = null def filter(context: ContainerRequestContext) = { try { interceptor.handleMessage(JAXRSUtils.getCurrentMessage) } catch { case _: AccessDeniedException => context.abortWith(Response.status(Response.Status.FORBIDDEN).build) } } def setInterceptor(in: TokenAuthorizingInterceptor) = interceptor = in }
Example 22
Source File: AppServer.scala From keycloak-benchmark with Apache License 2.0 | 5 votes |
package org.jboss.perf import java.net.InetSocketAddress import java.util.concurrent.TimeUnit import java.util.concurrent.atomic.LongAdder import javax.ws.rs.core.Response import javax.ws.rs.{GET, POST, Path} import com.sun.net.httpserver.HttpServer import org.jboss.resteasy.plugins.server.sun.http.HttpContextBuilder import org.keycloak.constants.AdapterConstants object AppServer { private val address: Array[String] = Options.app.split(":") private val httpServer = HttpServer.create(new InetSocketAddress(address(0), address(1).toInt), 100) private val contextBuilder = new HttpContextBuilder() contextBuilder.getDeployment().getActualResourceClasses().add(classOf[AppServer]) private val context = contextBuilder.bind(httpServer) private val logouts = new LongAdder(); private val versions = new LongAdder(); private val pushNotBefores = new LongAdder(); private val queryBearerTokens = new LongAdder(); private val testAvailables = new LongAdder(); def main(args: Array[String]): Unit = { httpServer.start() val timeout = Options.rampUp + Options.duration + Options.rampDown + 10; Thread.sleep(TimeUnit.SECONDS.toMillis(timeout)) httpServer.stop(0); printf("AppServer stats:%n%8d logout%n%8d version%n%8d pushNotBefore%n%8d queryBearerToken%n%8d testAvailables%n", logouts.longValue(), versions.longValue(), pushNotBefores.longValue(), queryBearerTokens.longValue(), testAvailables.longValue()) } } @Path("/admin") class AppServer { @GET @POST @Path(AdapterConstants.K_LOGOUT) def logout(): Response = { AppServer.logouts.increment() Response.ok().build() } @GET @POST @Path(AdapterConstants.K_VERSION) def version(): Response = { AppServer.versions.increment() Response.ok().build() } @GET @POST @Path(AdapterConstants.K_PUSH_NOT_BEFORE) def pushNotBefore(): Response = { AppServer.pushNotBefores.increment() Response.ok().build() } @GET @POST @Path(AdapterConstants.K_QUERY_BEARER_TOKEN) def queryBearerToken(): Response = { AppServer.queryBearerTokens.increment() Response.ok().build() } @GET @POST @Path(AdapterConstants.K_TEST_AVAILABLE) def testAvailable(): Response = { AppServer.testAvailables.increment() Response.ok().build() } }
Example 23
Source File: AddUser.scala From keycloak-benchmark with Apache License 2.0 | 5 votes |
package io.gatling.keycloak import javax.ws.rs.core.{HttpHeaders, Response} import akka.actor.ActorDSL._ import akka.actor.ActorRef import io.gatling.core.action.Interruptable import io.gatling.core.action.builder.ActionBuilder import io.gatling.core.config.Protocols import io.gatling.core.result.writer.DataWriterClient import io.gatling.core.session.{Expression, Session} import io.gatling.core.validation.{Success, Validation} import org.keycloak.admin.client.resource.RealmResource import org.keycloak.representations.idm.{CredentialRepresentation, UserRepresentation} case class AddUserAttributes( requestName: Expression[String], realm: Expression[RealmResource], username: Expression[String], enabled: Expression[Boolean] = _ => Success(true), firstName: Option[Expression[String]] = None, lastName: Option[Expression[String]] = None, email: Option[Expression[String]] = None, password: Option[Expression[String]] = None, passwordTemporary: Option[Expression[Boolean]] = None, save: Option[(Session, String) => Session] = None ) {} case class AddUserActionBuilder( attributes: AddUserAttributes ) extends ActionBuilder { def newInstance(attributes: AddUserAttributes) = new AddUserActionBuilder(attributes) def enabled(enabled: Expression[Boolean]) = newInstance(attributes.copy(enabled = enabled)) def password(password: Expression[String], temporary: Expression[Boolean]) = newInstance(attributes.copy(password = Some(password), passwordTemporary = Some(temporary))) def firstName(firstName: Expression[String]) = newInstance(attributes.copy(firstName = Some(firstName))) def lastName(lastName: Expression[String]) = newInstance(attributes.copy(lastName = Some(lastName))) def email(email: Expression[String]) = newInstance(attributes.copy(email = Some(email))) def saveWith[T](save: (Session, String) => Session) = newInstance(attributes.copy(save = Some(save))) def saveAs(name: String) = saveWith((session, id) => session.set(name, id)) override def build(next: ActorRef, protocols: Protocols): ActorRef = { actor(actorName("add-user"))(new AddUserAction(attributes, next)) } } class AddUserAction( attributes: AddUserAttributes, val next: ActorRef ) extends Interruptable with ExitOnFailure with DataWriterClient { override def executeOrFail(session: Session): Validation[_] = { val user = new UserRepresentation user.setUsername(attributes.username(session).get) user.setEnabled(attributes.enabled(session).get) attributes.firstName.map(fn => user.setFirstName(fn(session).get)) attributes.lastName.map(ln => user.setLastName(ln(session).get)) attributes.email.map(e => user.setEmail(e(session).get)) attributes.realm(session).map(realm => Blocking(() => Stopwatch(() => realm.users.create(user)) .check(response => response.getStatus == 201, response => { val status = response.getStatusInfo.toString response.close() status }) .recordAndStopOnFailure(this, session, attributes.requestName(session).get + ".create-user") .onSuccess(response => { val id = getUserId(response) response.close() val newSession = attributes.save.map(s => s(session, id)).getOrElse(session) attributes.password.map(password => { val credentials = new CredentialRepresentation credentials.setType(CredentialRepresentation.PASSWORD) credentials.setValue(password(newSession).get) attributes.passwordTemporary.map(a => credentials.setTemporary(a(newSession).get)) Stopwatch(() => realm.users.get(id).resetPassword(credentials)) .recordAndContinue(this, newSession, attributes.requestName(session).get + ".reset-password") }).getOrElse(next ! newSession) }) ) ) } def getUserId(u: Response): String = { val location = u.getHeaderString(HttpHeaders.LOCATION) val lastSlash = location.lastIndexOf('/'); if (lastSlash < 0) null else location.substring(lastSlash + 1) } }
Example 24
Source File: RestfulCatchAOP.scala From Linkis with Apache License 2.0 | 5 votes |
package com.webank.wedatasphere.linkis.server.restful import javax.ws.rs.core.Response import com.webank.wedatasphere.linkis.common.utils.Logging import com.webank.wedatasphere.linkis.server.{Message, catchIt} import org.aspectj.lang.ProceedingJoinPoint import org.aspectj.lang.annotation.{Around, Aspect, Pointcut} import org.springframework.stereotype.Component @Aspect @Component class RestfulCatchAOP extends Logging { @Pointcut("@annotation(javax.ws.rs.Path) && execution(public com.webank.wedatasphere.linkis.server.Message *(..))") def restfulMessageCatch() : Unit = {} @Around("restfulMessageCatch()") def dealMessageRestful(proceedingJoinPoint: ProceedingJoinPoint): Object = catchIt { proceedingJoinPoint.proceed().asInstanceOf[Message] } @Pointcut("@annotation(javax.ws.rs.Path) && execution(public javax.ws.rs.core.Response *(..)))") def restfulResponseCatch() : Unit = {} @Around("restfulResponseCatch()") def dealResponseRestful(proceedingJoinPoint: ProceedingJoinPoint): Object = { val resp: Response = catchIt { return proceedingJoinPoint.proceed() } resp } }
Example 25
Source File: EventLogDownloadResource.scala From drizzle-spark with Apache License 2.0 | 5 votes |
package org.apache.spark.status.api.v1 import java.io.OutputStream import java.util.zip.ZipOutputStream import javax.ws.rs.{GET, Produces} import javax.ws.rs.core.{MediaType, Response, StreamingOutput} import scala.util.control.NonFatal import org.apache.spark.SparkConf import org.apache.spark.deploy.SparkHadoopUtil import org.apache.spark.internal.Logging @Produces(Array(MediaType.APPLICATION_OCTET_STREAM)) private[v1] class EventLogDownloadResource( val uIRoot: UIRoot, val appId: String, val attemptId: Option[String]) extends Logging { val conf = SparkHadoopUtil.get.newConfiguration(new SparkConf) @GET def getEventLogs(): Response = { try { val fileName = { attemptId match { case Some(id) => s"eventLogs-$appId-$id.zip" case None => s"eventLogs-$appId.zip" } } val stream = new StreamingOutput { override def write(output: OutputStream): Unit = { val zipStream = new ZipOutputStream(output) try { uIRoot.writeEventLogs(appId, attemptId, zipStream) } finally { zipStream.close() } } } Response.ok(stream) .header("Content-Disposition", s"attachment; filename=$fileName") .header("Content-Type", MediaType.APPLICATION_OCTET_STREAM) .build() } catch { case NonFatal(e) => Response.serverError() .entity(s"Event logs are not available for app: $appId.") .status(Response.Status.SERVICE_UNAVAILABLE) .build() } } }
Example 26
Source File: SecurityFilter.scala From drizzle-spark with Apache License 2.0 | 5 votes |
package org.apache.spark.status.api.v1 import javax.ws.rs.container.{ContainerRequestContext, ContainerRequestFilter} import javax.ws.rs.core.Response import javax.ws.rs.ext.Provider @Provider private[v1] class SecurityFilter extends ContainerRequestFilter with UIRootFromServletContext { override def filter(req: ContainerRequestContext): Unit = { val user = Option(req.getSecurityContext.getUserPrincipal).map { _.getName }.orNull if (!uiRoot.securityManager.checkUIViewPermissions(user)) { req.abortWith( Response .status(Response.Status.FORBIDDEN) .entity(raw"""user "$user"is not authorized""") .build() ) } } }