protected SecuredPathBuilder spb(Route route) { SecuredPathBuilder spb = route.getExtension(SecuredPathBuilder.class); if(null == spb) { spb = new DefaultSecuredPathBuilder(route); route.setExtension(SecuredPathBuilder.class, spb); } return spb; }
@Override public void postProcess(ApiMetadataContext context, ApiMetadataBuilder m) { m.getPaths().values().forEach(p -> { for(MApiOperationBuilder op : p.getOperations()) { Route route = op.getRoute(); if(null != route) { MetaEntity entity = route.getExtension(MetaEntity.class); MApiExtension extension = route.getExtension(MApiExtension.class); if(null != entity && null != extension) { String crud = (String)extension.getAttribute("crud"); if(!Strings.isEmpty(crud)) { doc(route, op, entity, crud); } } } } }); }
public MApiOperationBuilder(Route route) { this.route = route; MApiSecurityReq[] securities = route.getExtension(MApiSecurityReq[].class); if(null != securities) { for(MApiSecurityReq security : securities) { this.security.put(security.getName(), security); } }else { if(!security.containsKey(SwaggerConstants.OAUTH2)){ MApiSecurityReq sec = new MApiSecurityReq(SwaggerConstants.OAUTH2); security.put(sec.getName(), sec); } if(route.getPermissions() != null){ security.get(SwaggerConstants.OAUTH2).addScopes(route.getPermissions()); } } if(null != route.getAllowAnonymous()) { this.allowAnonymous = route.getAllowAnonymous(); } if(null != route.getAllowClientOnly()){ this.allowClientOnly = route.getAllowClientOnly(); } this.extension = route.getExtension(MApiExtension.class); }
protected SecuredPath resolveSecuredPath(Request request, Response response, DefaultSecurityContextHolder context, Route route) throws Throwable { SecuredPath p; for(SecurityInterceptor interceptor : config.getInterceptors()) { if((p = interceptor.resolveSecuredPath(context)) != null){ return p; } } SecuredPath p1 = null == route ? null : route.getExtension(SecuredPath.class); SecuredPath p2 = pathSource.getSecuredPath(context, request); if(null == p1) { return p2; } if(null == p2) { return p1; } return new MergedSecuredPath(route, p1, p2); }