java定义geinfo_Java ResourceInfo類代碼示例

本文汇总了Java中javax.ws.rs.container.ResourceInfo类的多种用法,通过多个代码示例展示了如何在不同场景下使用该类,如权限验证、缓存控制、API拦截等。适合遇到ResourceInfo具体用法问题的开发者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文整理匯總了Java中javax.ws.rs.container.ResourceInfo類的典型用法代碼示例。如果您正苦於以下問題:Java ResourceInfo類的具體用法?Java ResourceInfo怎麽用?Java ResourceInfo使用的例子?那麽恭喜您, 這裏精選的類代碼示例或許可以為您提供幫助。

ResourceInfo類屬於javax.ws.rs.container包,在下文中一共展示了ResourceInfo類的38個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於我們的係統推薦出更棒的Java代碼示例。

示例1: testVersionFilter

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@SuppressWarnings("boxing")

private MultivaluedMap testVersionFilter(String version) throws WebApplicationException, NoSuchMethodException {

ResourceInfo resourceInfo = mock(ResourceInfo.class);

ContainerRequestContext request = mock(ContainerRequestContext.class);

UriInfo uriInfo = mock(UriInfo.class);

when(request.getUriInfo()).thenReturn(uriInfo);

Method method = SinceClass.class.getMethod("dummy");

MultivaluedMap prop = new MultivaluedHashMap<>();

prop.putSingle(CommonParams.PARAM_VERSION, version);

when(uriInfo.getPathParameters()).thenReturn(prop);

VersionFilter filter = spy(new VersionFilter());

when(filter.getResourceInfo()).thenReturn(resourceInfo);

when(resourceInfo.getResourceMethod()).thenReturn(method);

filter.filter(request);

return prop;

}

開發者ID:servicecatalog,項目名稱:oscm,代碼行數:22,

示例2: configure

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void configure(ResourceInfo resourceInfo, FeatureContext context) {

List authzSpecs = new ArrayList<>();

Annotation classAuthzSpec =

resourceInfo.getResourceClass().getAnnotation(AppkeyAnnotation.class);

Annotation methodAuthzSpec =

resourceInfo.getResourceMethod().getAnnotation(AppkeyAnnotation.class);

if (classAuthzSpec != null)

authzSpecs.add(classAuthzSpec);

if (methodAuthzSpec != null)

authzSpecs.add(methodAuthzSpec);

if (!authzSpecs.isEmpty()) {

context.register(AppkeyFilter.class);

}

}

開發者ID:jiumao-org,項目名稱:wechat-mall,代碼行數:20,

示例3: configure

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void configure(ResourceInfo resourceInfo, FeatureContext context) {

List authzSpecs = new ArrayList<>();

Annotation classAuthzSpec =

resourceInfo.getResourceClass().getAnnotation(AuthAnnotation.class);

Annotation methodAuthzSpec =

resourceInfo.getResourceMethod().getAnnotation(AuthAnnotation.class);

if (classAuthzSpec != null)

authzSpecs.add(classAuthzSpec);

if (methodAuthzSpec != null)

authzSpecs.add(methodAuthzSpec);

if (!authzSpecs.isEmpty()) {

// 需要攔截的api

context.register(AuthorizationFilter.class);

}

}

開發者ID:jiumao-org,項目名稱:wechat-mall,代碼行數:21,

示例4: configure

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void configure(ResourceInfo resourceInfo, FeatureContext context) {

CacheFor cc = resourceInfo.getResourceClass().getAnnotation(CacheFor.class);

CacheFor mcc = resourceInfo.getResourceMethod().getAnnotation(CacheFor.class);

if( mcc!=null ) {

cc = mcc;

}

if (cc!=null) {

if( cc.value() == 0 ) {

context.register(NoCacheFilter.class);

} else if( cc.value() > 0 ) {

context.register(new CacheFilter("max-age= " + cc.unit().toSeconds(cc.value())));

}

} else {

context.register(NoCacheFilter.class);

}

}

開發者ID:syndesisio,項目名稱:syndesis,代碼行數:18,

示例5: configure

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void configure(ResourceInfo resourceInfo, FeatureContext context) {

// 獲取資源方法

Method resourceMethod = resourceInfo.getResourceMethod();

if (resourceMethod != null) {

// 獲取FormatJson注解

ResponseFormat formatJson = resourceMethod.getAnnotation(ResponseFormat.class);

if (formatJson == null || formatJson.type().equals(FormatType.JSON)) {

context.register(DefaultWebFilter.class);

}

}

}

開發者ID:warlock-china,項目名稱:azeroth,代碼行數:17,

示例6: configure

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void configure(ResourceInfo resourceInfo, FeatureContext context) {

Class> resourceClass = resourceInfo.getResourceClass();

Method resourceMethod = resourceInfo.getResourceMethod();

if (isStaticContent(resourceClass, resourceMethod)) {

// class or method is annotated with MCRStaticContent

// -> do not register any filter

return;

}

String packageName = resourceClass.getPackage().getName();

if (getPackages().contains(packageName)) {

registerTransactionFilter(context);

registerSessionHookFilter(context);

registerAccessFilter(context, resourceClass, resourceMethod);

}

}

開發者ID:MyCoRe-Org,項目名稱:mycore,代碼行數:17,

示例7: configure

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void configure(ResourceInfo resourceInfo, FeatureContext featureContext) {

AnnotatedMethod am = new AnnotatedMethod(resourceInfo.getResourceMethod());

RequireBasicAuth requireBasicAuth = null;

if (am.isAnnotationPresent(RequireBasicAuth.class)) {

requireBasicAuth = am.getAnnotation(RequireBasicAuth.class);

}

else {

requireBasicAuth = resourceInfo.getResourceClass().getAnnotation(RequireBasicAuth.class);

}

if (requireBasicAuth != null) {

featureContext.register(new BasicAuthKarafSecurityRequestFilter(requireBasicAuth.limitToGroups(), requireBasicAuth.limitToRoles(), requireBasicAuth.karafRealm(), requireBasicAuth.requiresSecure(), requireBasicAuth.httpRealm()));

}

}

開發者ID:andyphillips404,項目名稱:awplab-core,代碼行數:18,

示例8: selectVariant

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

private static MediaType selectVariant(Request request, ResourceInfo resourceInfo) {

Produces produces = resourceInfo.getResourceMethod().getAnnotation(Produces.class);

if (produces == null) {

produces = getAnnotation(resourceInfo.getResourceClass(), Produces.class);

}

if (produces != null) {

List variants = Arrays.stream(produces.value())

.map((String mt) -> Variant.mediaTypes(MediaType.valueOf(mt)).build().get(0))

.collect(Collectors.toList());

Variant variant = request.selectVariant(variants);

if (variant != null) {

return variant.getMediaType();

}

}

return null;

}

開發者ID:mvc-spec,項目名稱:ozark,代碼行數:24,

示例9: configure

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void configure(ResourceInfo resourceInfo, FeatureContext context) {

final AnnotatedMethod am = new AnnotatedMethod(resourceInfo.getResourceMethod());

final Annotation[][] parameterAnnotations = am.getParameterAnnotations();

//@DenyAll shouldn't be attached to classes

final boolean annotationOnClass = (resourceInfo.getResourceClass().getAnnotation(RolesAllowed.class) != null) ||

(resourceInfo.getResourceClass().getAnnotation(PermitAll.class) != null);

final boolean annotationOnMethod = am.isAnnotationPresent(RolesAllowed.class) || am.isAnnotationPresent(DenyAll.class) ||

am.isAnnotationPresent(PermitAll.class);

if (annotationOnClass || annotationOnMethod) {

context.register(filterClass);

} else {

for (Annotation[] annotations : parameterAnnotations) {

for (Annotation annotation : annotations) {

if (annotation instanceof Auth) {

context.register(filterClass);

return;

}

}

}

}

}

開發者ID:openregister,項目名稱:openregister-java,代碼行數:24,

示例10: processResponse

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void processResponse(ContainerRequestContext requestContext, ContainerResponseContext responseContext,

ResourceInfo resourceInfo) {

MediaType mediaType = responseContext.getMediaType();

if (mediaType != null && MediaType.APPLICATION_JSON_TYPE.equals(mediaType)) {

Object responseData = responseContext.getEntity();

WrapperResponseEntity jsonResponse;

if (responseData instanceof WrapperResponseEntity) {

jsonResponse = (WrapperResponseEntity) responseData;

} else {

jsonResponse = new WrapperResponseEntity(ResponseCode.OK);

jsonResponse.setData(responseData);

}

responseContext.setStatus(ResponseCode.OK.getCode());

responseContext.setEntity(jsonResponse);

}

}

開發者ID:vakinge,項目名稱:jeesuite-libs,代碼行數:21,

示例11: configure

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void configure(ResourceInfo resourceInfo, FeatureContext context) {

// 獲取資源方法

Method resourceMethod = resourceInfo.getResourceMethod();

if (resourceMethod != null) {

// 獲取FormatJson注解

ResponseFormat formatJson = resourceMethod.getAnnotation(ResponseFormat.class);

if(formatJson == null || formatJson.type().equals(FormatType.JSON)){

context.register(DefaultWebFilter.class);

}

}

}

開發者ID:vakinge,項目名稱:jeesuite-libs,代碼行數:17,

示例12: configure

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void configure(ResourceInfo resourceInfo, FeatureContext context) {

// TODO why it is called twice for the same endpoint

if (!tracingDisabled(resourceInfo) && builder.allTraced) {

log(resourceInfo);

context.register(new ServerTracingFilter(

builder.tracer,

operationName(resourceInfo),

builder.spanDecorators,

builder.operationNameBuilder.build(resourceInfo.getResourceClass(), resourceInfo.getResourceMethod()),

builder.skipPattern != null ? Pattern.compile(builder.skipPattern) : null),

builder.priority);

if (builder.traceSerialization) {

context.register(new ServerTracingInterceptor(builder.tracer,

builder.serializationSpanDecorators), builder.serializationPriority);

}

}

}

開發者ID:opentracing-contrib,項目名稱:java-jaxrs,代碼行數:20,

示例13: configure

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void configure(ResourceInfo resourceInfo, FeatureContext context) {

Trace annotation = resourceInfo.getResourceMethod().getAnnotation(Trace.class);

String operationName = this.operationName;

if (annotation != null) {

if (!annotation.operationName().equals("")) {

operationName = annotation.operationName();

}

context.register(new ServerRequestTracingFilter(this.tracer, operationName,

this.tracedAttributes, this.tracedProperties, this.decorator));

context.register(new ServerResponseTracingFilter(this.tracer));

} else {

if (traceAll) {

context.register(new ServerRequestTracingFilter(this.tracer, operationName,

this.tracedAttributes, this.tracedProperties, this.decorator));

context.register(new ServerResponseTracingFilter(this.tracer));

}

}

}

開發者ID:opentracing-contrib,項目名稱:java-dropwizard,代碼行數:20,

示例14: configure

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void configure(final ResourceInfo resourceInfo, final FeatureContext configuration) {

AnnotatedMethod am = new AnnotatedMethod(resourceInfo.getResourceMethod());

// RolesAllowed on the method takes precedence over PermitAll

RolesAllowed ra = am.getAnnotation(RolesAllowed.class);

if (ra != null) {

configuration.register(AuthCheckFilter.INSTANCE);

return;

}

// PermitAll takes precedence over RolesAllowed on the class

// This avoids putting AuthCheckFilter in the request flow for all path's which

// are defined under PermitAll annotation. That is requests for "/", "/login", "/mainLogin" and "/spnegoLogin"

// path's doesn't go through AuthCheckFilter.

if (am.isAnnotationPresent(PermitAll.class)) {

// Do nothing.

return;

}

// RolesAllowed on the class takes precedence over PermitAll

ra = resourceInfo.getResourceClass().getAnnotation(RolesAllowed.class);

if (ra != null) {

configuration.register(AuthCheckFilter.INSTANCE);

}

}

開發者ID:axbaretto,項目名稱:drill,代碼行數:27,

示例15: configure

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void configure(ResourceInfo resourceInfo, FeatureContext context) {

if (resourceInfo.getResourceClass().getName()

.startsWith(RootResource.class.getPackage().getName() + ".") == false) {

return;

}

Permissions permissions = resourceInfo.getResourceMethod().getAnnotation(Permissions.class);

if (permissions == null) {

permissions = resourceInfo.getResourceClass().getAnnotation(Permissions.class);

}

if (permissions == null) {

//TODO

Logger.getLogger(PermissionProvider.class.getName())

.warning(String.format("%s not annotated @Permissions",

resourceInfo.getResourceMethod().toGenericString()));

return;

}

context.register(new PermissionTester(permissions));

}

開發者ID:backpaper0,項目名稱:sealion,代碼行數:22,

示例16: shouldRegisterFilterWhenIsPermitAllReturnsFalse

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Test

public void shouldRegisterFilterWhenIsPermitAllReturnsFalse() throws Exception {

// given

AuthenticationFeature feature = new AuthenticationFeature() {

@Override

boolean isPermitAll(ResourceInfo resourceInfo) {

return false;

}

};

// when

FeatureContext context = mock(FeatureContext.class);

feature.configure(mock(ResourceInfo.class), context);

// then

verify(context).register(any(AuthenticationFilter.class));

}

開發者ID:puzzle,項目名稱:jee-user-auth,代碼行數:18,

示例17: shouldNotRegisterFilterWhenIsPermitAllReturnsTrue

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Test

public void shouldNotRegisterFilterWhenIsPermitAllReturnsTrue() throws Exception {

// given

AuthenticationFeature feature = new AuthenticationFeature() {

@Override

boolean isPermitAll(ResourceInfo resourceInfo) {

return true;

}

};

// when

FeatureContext context = mock(FeatureContext.class);

feature.configure(mock(ResourceInfo.class), context);

// then

verify(context, never()).register(any(AuthenticationFilter.class));

}

開發者ID:puzzle,項目名稱:jee-user-auth,代碼行數:18,

示例18: configure

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void configure(ResourceInfo resourceInfo, FeatureContext context) {

Class> resourceClass = resourceInfo.getResourceClass();

Method method = resourceInfo.getResourceMethod();

boolean required = true;

if (resourceClass.isAnnotationPresent(TenantRequired.class)) {

required = resourceClass.getAnnotation(TenantRequired.class).value();

}

if (method.isAnnotationPresent(TenantRequired.class)) {

required = method.getAnnotation(TenantRequired.class).value();

}

if (required) {

context.register(TENANT_FILTER);

}

}

開發者ID:hawkular,項目名稱:hawkular-commons,代碼行數:19,

示例19: configure

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void configure(ResourceInfo resourceInfo, FeatureContext context) {

Method resourceMethod = resourceInfo.getResourceMethod();

Class> resourceClass = resourceInfo.getResourceClass();

if(metricsDisabled(resourceClass)) {

return;

}

Path methodPath = resourceMethod.getAnnotation(Path.class);

Path classPath = resourceClass.getAnnotation(Path.class);

Path path = methodPath != null ? methodPath : classPath;

if(path != null) {

UriBuilder builder = methodPath != null

? UriBuilder.fromResource(resourceClass).path(resourceClass, resourceMethod.getName())

: UriBuilder.fromResource(resourceClass);

String template = builder.toTemplate();

context.register(new TimerBeforeFilter(template));

context.register(TimerAfterFilter.class);

}

}

開發者ID:kantega,項目名稱:respiro,代碼行數:23,

示例20: configure

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void configure(ResourceInfo resourceInfo, FeatureContext context) {

List authzSpecs = new ArrayList<>();

for (Class extends Annotation> annotationClass : shiroAnnotations) {

// XXX What is the performance of getAnnotation vs getAnnotations?

Annotation classAuthzSpec = resourceInfo.getResourceClass().getAnnotation(annotationClass);

Annotation methodAuthzSpec = resourceInfo.getResourceMethod().getAnnotation(annotationClass);

if (classAuthzSpec != null) authzSpecs.add(classAuthzSpec);

if (methodAuthzSpec != null) authzSpecs.add(methodAuthzSpec);

}

if (!authzSpecs.isEmpty()) {

context.register(new AuthorizationFilter(authzSpecs), Priorities.AUTHORIZATION);

}

}

開發者ID:silb,項目名稱:shiro-jersey,代碼行數:19,

示例21: configure

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void configure(ResourceInfo resourceInfo, FeatureContext context) {

Jsend jsend = resourceInfo.getResourceMethod().getAnnotation(Jsend.class);

if (jsend == null) {

jsend = resourceInfo.getResourceClass().getAnnotation(Jsend.class);

}

if (jsend != null) {

Produces produces = resourceInfo.getResourceMethod().getAnnotation(Produces.class);

if (produces == null) {

produces = resourceInfo.getResourceClass().getAnnotation(Produces.class);

}

if (produces == null || produces.value().length == 0) {

context.register(new JsendFilter(jsend));

} else {

final Jsend finalJsend = jsend;

Arrays.asList(produces.value())

.stream()

.filter(ct -> MediaType.APPLICATION_JSON_TYPE.isCompatible(MediaType.valueOf(ct)))

.findFirst()

.ifPresent(s -> context.register(new JsendFilter(finalJsend)));

}

}

}

開發者ID:guestful,項目名稱:module.jaxrs-filter-jsend,代碼行數:24,

示例22: configure

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

protected void configure() {

jerseyToGuice(MultivaluedParameterExtractorProvider.class);

jerseyToGuice(Application.class);

jerseyToGuice(Providers.class);

// request scoped objects, but hk will control their scope

// must be used in guice only with Provider

jerseyToGuice(UriInfo.class);

jerseyToGuice(ResourceInfo.class);

jerseyToGuice(HttpHeaders.class);

jerseyToGuice(SecurityContext.class);

jerseyToGuice(Request.class);

jerseyToGuice(ContainerRequest.class);

jerseyToGuice(AsyncContext.class);

if (!guiceServletSupport) {

// bind request and response objects when guice servlet module not registered

// but this will work only for resources

jerseyToGuice(HttpServletRequest.class);

jerseyToGuice(HttpServletResponse.class);

}

}

開發者ID:xvik,項目名稱:dropwizard-guicey,代碼行數:24,

示例23: configure

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void configure(ResourceInfo resourceInfo, FeatureContext featureContext) {

// No need to check non-Jax-rs classes

if (resourceInfo.getResourceClass().getAnnotation(Path.class) != null) {

if (filterNeeded(RequiresAuthentication.class, RequiresNoAuthentication.class, resourceInfo)) {

featureContext.register(new RequiresAuthenticationContainerRequestFilter());

}

if (filterNeeded(RequiresGuest.class, RequiresNoGuest.class, resourceInfo)) {

featureContext.register(new RequiresGuestContainerRequestFilter());

}

if (filterNeeded(RequiresPermissions.class, RequiresNoPermission.class, resourceInfo)) {

featureContext.register(new RequiresPermissionContainerRequestFilter(resourceInfo));

}

if (filterNeeded(RequiresRoles.class, RequiresNoRoles.class, resourceInfo)) {

featureContext.register(new RequiresRolesContainerRequestFilter(resourceInfo));

}

if (filterNeeded(RequiresUser.class, RequiresNoUser.class, resourceInfo)) {

featureContext.register(new RequiresUserContainerRequestFilter());

}

}

}

開發者ID:LosD,項目名稱:Shiro-Jersey2-annotations,代碼行數:26,

示例24: RequiresPermissionContainerRequestFilter

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

public RequiresPermissionContainerRequestFilter(ResourceInfo resourceInfo) {

RequiresPermissions permissions = resourceInfo.getResourceClass().getAnnotation(

RequiresPermissions.class);

RequiresPermissions methodPermissions = resourceInfo.getResourceMethod().getAnnotation(

RequiresPermissions.class);

if (methodPermissions != null) {

permissions = methodPermissions;

}

Objects.requireNonNull(permissions);

logical = permissions.logical();

for (String permission : permissions.value()) {

requiredPermissions.add(new WildcardPermission(permission));

}

}

開發者ID:LosD,項目名稱:Shiro-Jersey2-annotations,代碼行數:17,

示例25: configure

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void configure(ResourceInfo resourceInfo, FeatureContext context) {

final AnnotatedMethod am = new AnnotatedMethod(resourceInfo.getResourceMethod());

final Annotation[][] parameterAnnotations = am.getParameterAnnotations();

if (am.isAnnotationPresent(RolesAllowed.class) || am.isAnnotationPresent(DenyAll.class) ||

am.isAnnotationPresent(PermitAll.class)) {

context.register(authFilter);

} else {

for (Annotation[] annotations : parameterAnnotations) {

for (Annotation annotation : annotations) {

if (annotation instanceof Auth) {

context.register(authFilter);

return;

}

}

}

}

}

開發者ID:dropwizard,項目名稱:dropwizard-java8,代碼行數:19,

示例26: configure

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void configure(ResourceInfo resourceInfo, FeatureContext context) {

Method am = resourceInfo.getResourceMethod();

if (am.isAnnotationPresent(Permissions.class)) {

Authenticated authenticated = am.getAnnotation(Authenticated.class);

if (authenticated == null) {

authenticated = resourceInfo.getResourceClass().getAnnotation(Authenticated.class);

if (authenticated == null) {

throw new IllegalStateException("@Permissions found on " + am + " but no @Authenticated found");

}

}

List permissions = Arrays.asList(am.getAnnotation(Permissions.class).value());

Collection vars = new HashSet<>();

for (String p : permissions) {

int s = p.indexOf('{');

while (s != -1) {

int e = p.indexOf('}', s + 1);

vars.add(p.substring(s + 1, e));

s = p.indexOf('{', e + 1);

}

}

context.register(new PermissionFilter(authenticated.value(), permissions, vars));

}

}

開發者ID:guestful,項目名稱:module.jaxrs-filter-security,代碼行數:25,

示例27: Server

​點讚 3

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

public Server() {

register(FreemarkerMvcFeature.class);

packages("ru.qatools.school.baguette.resources");

register(new DynamicFeature() {

@Override

public void configure(ResourceInfo resourceInfo, FeatureContext context) {

context.register(DatabaseProvider.class);

if (resourceInfo.getResourceMethod().isAnnotationPresent(AuthenticationRequired.class)) {

context.register(AuthenticationFilter.class);

}

}

});

}

開發者ID:autoschool,項目名稱:baguette,代碼行數:17,

示例28: configure

​點讚 2

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void configure(ResourceInfo resourceInfo, FeatureContext context) {

Class> resourceClass = resourceInfo.getResourceClass();

Method method = resourceInfo.getResourceMethod();

logger.info("getResourceClass: " + resourceClass);

logger.info("getResourceMethod: " + method);

context.property("new_dynamic_feature", resourceClass + "|" + method);

}

開發者ID:PacktPublishing,項目名稱:Mastering-Java-EE-Development-with-WildFly,代碼行數:9,

示例29: configure

​點讚 2

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void configure(ResourceInfo resourceInfo, FeatureContext context) {

if (ENFORCE_AUTHENTICATION && ENFORCE_AUTHORIZATION) {

final Method method = resourceInfo.getResourceMethod();

if (method.isAnnotationPresent(PermissionRequired.class)) {

context.register(AuthorizationFilter.class);

}

}

}

開發者ID:stevespringett,項目名稱:Alpine,代碼行數:10,

示例30: configure

​點讚 2

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void configure(ResourceInfo resourceInfo, FeatureContext context) {

if (ENFORCE_AUTHENTICATION) {

final Method method = resourceInfo.getResourceMethod();

if (!method.isAnnotationPresent(AuthenticationNotRequired.class)) {

context.register(AuthenticationFilter.class);

}

}

}

開發者ID:stevespringett,項目名稱:Alpine,代碼行數:10,

示例31: configure

​點讚 2

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void configure(ResourceInfo resourceInfo, FeatureContext context) {

Method method = resourceInfo.getResourceMethod();

Annotation[][] parameterAnnotations = method.getParameterAnnotations();

for (Annotation[] annotations : parameterAnnotations) {

for (Annotation annotation : annotations) {

if (annotation.annotationType().equals(Session.class) && !method.getName().startsWith("log")) {

context.register(NiPingAuthFilter.class);

}

}

}

}

開發者ID:CloudWise-OpenSource,項目名稱:SAPNetworkMonitor,代碼行數:13,

示例32: configure

​點讚 2

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void configure(ResourceInfo resourceInfo, FeatureContext context) {

List authzSpecs = new ArrayList<>();

boolean canRedirect = true;

for (Class extends Annotation> annotationClass : filterAnnotations) {

// XXX What is the performance of getAnnotation vs getAnnotations?

Annotation classAuthzSpec = resourceInfo.getResourceClass().getAnnotation(annotationClass);

Annotation methodAuthzSpec = resourceInfo.getResourceMethod().getAnnotation(annotationClass);

if (classAuthzSpec != null) authzSpecs.add(classAuthzSpec);

if (methodAuthzSpec != null) authzSpecs.add(methodAuthzSpec);

if(resourceInfo.getResourceClass().isAnnotationPresent(NoAuthRedirect.class)

|| resourceInfo.getResourceMethod().isAnnotationPresent(NoAuthRedirect.class))

canRedirect = false;

if(resourceInfo.getResourceClass().isAnnotationPresent(NoAuthFilter.class)

|| resourceInfo.getResourceMethod().isAnnotationPresent(NoAuthFilter.class))

return;

}

if (!authzSpecs.isEmpty()) {

if(canRedirect)

context.register(new LoginRedirectFilter(), Priorities.AUTHENTICATION + 1);

context.register(new AuthorizationFilter(authzSpecs), Priorities.AUTHORIZATION);

}

}

開發者ID:FroMage,項目名稱:redpipe,代碼行數:28,

示例33: shouldFilter

​點讚 2

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

/**

* Helper to determine if the filter applies in the current context or not.

*

* @param context Context provided on the request

* @param resourceInfo Resource Info injected via @Context

* @return true if this filter should apply to the current context

*/

protected boolean shouldFilter(ContainerRequestContext context, ResourceInfo resourceInfo) {

if (resourceInfo.getResourceMethod().getAnnotation(DisableTracing.class) != null

|| resourceInfo.getResourceClass().getAnnotation(DisableTracing.class) != null) {

return false;

}

return true;

}

開發者ID:ExpediaDotCom,項目名稱:haystack-client-java,代碼行數:15,

示例34: getOperationName

​點讚 2

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

/**

* Extension point used to supply the operation name for tracing.

*

* @param context Context provided on the request

* @param resourceInfo Resource Info injected via @Context

* @return the name used for this operation

*/

protected String getOperationName(ContainerRequestContext context, ResourceInfo resourceInfo) {

final Traced methodAnnotation = resourceInfo.getResourceMethod().getAnnotation(Traced.class);

if (methodAnnotation != null) {

return methodAnnotation.name();

}

final Traced classAnnotation = resourceInfo.getResourceClass().getAnnotation(Traced.class);

if (classAnnotation != null) {

return classAnnotation.name();

}

return String.format("%s:%s", context.getMethod(), resourceInfo.getResourceClass().getCanonicalName());

}

開發者ID:ExpediaDotCom,項目名稱:haystack-client-java,代碼行數:21,

示例35: test

​點讚 2

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

public Span test(String clientTraceId, String clientSpanId, int statusCode) throws Exception {

TracerTestImpl tracer = new TracerTestImpl();

ResourceInfo resourceInfo = Mockito.mock(ResourceInfo.class);

Method method = TraceContainerFilterTest.class.getMethod("testNoClientTrace");

Mockito.when(resourceInfo.getResourceMethod()).thenReturn(method);

Mockito.when(resourceInfo.getResourceClass()).thenReturn((Class)method.getDeclaringClass());

TraceContainerFilter scf = new TraceContainerFilter();

scf.setTracer(tracer);

scf.resourceInfo = resourceInfo;

UriInfo uriInfo = Mockito.mock(UriInfo.class);

Mockito.when(uriInfo.getRequestUri()).thenReturn(new URI("https://example.com:7110/some/path"));

Mockito.when(uriInfo.getPath()).thenReturn("/path");

ContainerRequestContext requestContext = Mockito.mock(ContainerRequestContext.class);

Mockito.when(requestContext.getUriInfo()).thenReturn(uriInfo);

Mockito.when(requestContext.getMethod()).thenReturn("GET");

Mockito.when(requestContext.getHeaderString(Mockito.eq(TracerImpl.SPAN_ID))).thenReturn(clientSpanId);

Mockito.when(requestContext.getHeaderString(Mockito.eq(TracerImpl.TRACE_ID))).thenReturn(clientTraceId);

scf.filter(requestContext);

Assert.assertNotNull(tracer.getCurrentSpan());

ContainerResponseContext responseContext = Mockito.mock(ContainerResponseContext.class);

Mockito.when(responseContext.getEntityAnnotations()).thenReturn(new Annotation[]{});

Mockito.when(responseContext.getStatus()).thenReturn(statusCode);

scf.filter(requestContext, responseContext);

Assert.assertNull(tracer.getCurrentSpan());

Span span = tracer.getCapturedSpan();

Assert.assertEquals("service", span.getService());

Assert.assertEquals("TraceContainerFilterTest", span.getResource());

Assert.assertEquals("testNoClientTrace", span.getOperation());

return span;

}

開發者ID:chonton,項目名稱:apm-client,代碼行數:41,

示例36: testInterceptor

​點讚 2

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@SuppressWarnings({

"unchecked",

"rawtypes"

})

@Test

public void testInterceptor() throws Exception {

jwtInterceptor.setClaimsProcessor(new ValidatingProcessor("typ", "https://example.com/register"));

final JwtClaims jwtClaims = JwtClaims.parse("{\"typ\":\"https://example.com/register\", \"aud\":\"sample\", \"jti\": \"abc\", \"iss\":\"http://accounts.trajano.net\"}");

final String jwt = cryptoOps.sign(jwtClaims);

System.out.println(jwt);

final ResourceInfo resourceInfo = Mockito.mock(ResourceInfo.class);

Mockito.when(resourceInfo.getResourceMethod()).thenReturn(Hello.class.getMethod("hello2B"));

Mockito.when(resourceInfo.getResourceClass()).thenReturn((Class) Hello.class);

jwtInterceptor.setResourceInfo(resourceInfo);

final ContainerRequestContext containerRequestContext = Mockito.mock(ContainerRequestContext.class);

final UriInfo uriInfo = Mockito.mock(UriInfo.class);

Mockito.when(uriInfo.getRequestUri()).thenReturn(URI.create("http://trajano.net/sample"));

Mockito.when(containerRequestContext.getUriInfo()).thenReturn(uriInfo);

Mockito.when(containerRequestContext.getHeaderString("X-JWT-Assertion")).thenReturn(jwt);

Mockito.when(containerRequestContext.getHeaderString("X-JWT-Audience")).thenReturn("sample");

mdcInterceptor.filter(containerRequestContext);

jwtInterceptor.filter(containerRequestContext);

// final Request request = mock(Request.class);

// when(request.getHeader("X-JWT-Assertion")).thenReturn(jwt);

// final Response responder = mock(Response.class);

// final ServiceMethodInfo serviceMethodInfo = mock(ServiceMethodInfo.class);

// assertTrue(interceptor.preCall(request, responder, serviceMethodInfo));

}

開發者ID:trajano,項目名稱:app-ms,代碼行數:33,

示例37: configure

​點讚 2

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void configure(ResourceInfo resourceInfo, FeatureContext context) {

// check method

if (!registerAuthenticationFilters(context, resourceInfo.getResourceMethod())) {

// check class

registerAuthenticationFilters(context, resourceInfo.getResourceClass());

}

}

開發者ID:holon-platform,項目名稱:holon-jaxrs,代碼行數:9,

示例38: processResponse

​點讚 2

import javax.ws.rs.container.ResourceInfo; //導入依賴的package包/類

@Override

public void processResponse(ContainerRequestContext requestContext,

ContainerResponseContext responseContext,

ResourceInfo resourceInfo) {

MediaType mediaType = responseContext.getMediaType();

if (mediaType != null && MediaType.APPLICATION_JSON_TYPE.equals(mediaType)) {

Object responseData = responseContext.getEntity();

WrapperResponseEntity jsonResponse;

if (responseData instanceof WrapperResponseEntity) {

jsonResponse = (WrapperResponseEntity) responseData;

} else {

jsonResponse = new WrapperResponseEntity(ResponseCode.OK);

jsonResponse.setData(responseData);

}

responseContext.setStatus(ResponseCode.OK.getCode());

responseContext.setEntity(jsonResponse);

}

}

開發者ID:warlock-china,項目名稱:azeroth,代碼行數:22,

注:本文中的javax.ws.rs.container.ResourceInfo類示例整理自Github/MSDocs等源碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值