@Override public void aroundInvoke(final RemoteCallContext context) { final Object o = context.getParameters()[0]; if (o instanceof PathFactory.PathImpl && ((PathFactory.PathImpl) o).getAttributes().size() > 0) { context.setResult(((PathFactory.PathImpl) o).getAttributes()); return; } context.proceed(); } }
private void login(final RemoteCallContext callContext) { callContext.proceed(new RemoteCallback<User>() { @Override public void callback(final User response) { securityContext.setCachedUser(response); } }); }
@Override public void aroundInvoke(final RemoteCallContext callContext) { if (callContext.getMethodName().equals("login")) { login(callContext); } else if (callContext.getMethodName().equals("logout")) { logout(callContext); } else if (callContext.getMethodName().equals("getUser")) { getUser(callContext); } else if (callContext.getMethodName().equals("isLoggedIn")) { isLoggedIn(callContext); } else { callContext.proceed(); } }
@Override public void callback(final Object response) { callContext.setResult(response); } }, new ErrorCallback<Object>() {
@Override public void aroundInvoke(final RemoteCallContext callContext) { securityCheck( AnnotationUtils.mergeRoles( roleExtractor, getRestrictedAccessAnnotation(callContext.getTypeAnnotations()), getRestrictedAccessAnnotation(callContext.getAnnotations())), callContext); }
private void login(final RemoteCallContext callContext) { callContext.proceed(new RemoteCallback<User>() { @Override public void callback(final User response) { securityContext.setCachedUser(response); } }); }
@Override public void aroundInvoke(final RemoteCallContext callContext) { if (callContext.getMethodName().equals("login")) { login(callContext); } else if (callContext.getMethodName().equals("logout")) { logout(callContext); } else if (callContext.getMethodName().equals("getUser")) { getUser(callContext); } else if (callContext.getMethodName().equals("isLoggedIn")) { isLoggedIn(callContext); } else { callContext.proceed(); } }
@Override public void callback(final Object response) { callContext.setResult(response); } }, new ErrorCallback<Object>() {
@Override public void aroundInvoke(final RemoteCallContext callContext) { securityCheck( AnnotationUtils.mergeRoles( roleExtractor, getRestrictedAccessAnnotation(callContext.getTypeAnnotations()), getRestrictedAccessAnnotation(callContext.getAnnotations())), callContext); }
private void getUser(final RemoteCallContext context) { if (securityContext.isUserCacheValid()) { context.setResult(securityContext.getCachedUser()); } else { context.proceed(new RemoteCallback<User>() { @Override public void callback(final User response) { securityContext.setCachedUser(response); } }); } }
@Override public void aroundInvoke(final RemoteCallContext context) { final Object o = context.getParameters()[0]; if (o instanceof PathFactory.PathImpl && ((PathFactory.PathImpl) o).getAttributes().size() > 0) { context.setResult(((PathFactory.PathImpl) o).getAttributes()); return; } context.proceed(); } }
private void logout(final RemoteCallContext callContext) { securityContext.setCachedUser(User.ANONYMOUS); callContext.proceed(); }
private void getUser(final RemoteCallContext context) { if (securityContext.isUserCacheValid()) { context.setResult(securityContext.getCachedUser()); } else { context.proceed(new RemoteCallback<User>() { @Override public void callback(final User response) { securityContext.setCachedUser(response); } }); } }
private void logout(final RemoteCallContext callContext) { securityContext.setCachedUser(User.ANONYMOUS); callContext.proceed(); }
private void securityCheck(final Set<Role> requiredRoleNames, final RemoteCallContext callContext) { if (securityContext.isUserCacheValid()) { if (securityContext.hasCachedUser()) { if (securityContext.getCachedUser().getRoles().containsAll(requiredRoleNames)) { callContext.proceed(new RemoteCallback<Object>() { @Override public void callback(final Object response) { callContext.setResult(response); } }, new ErrorCallback<Object>() { @Override public boolean error(Object message, Throwable throwable) { if (throwable instanceof UnauthenticatedException) { securityContext.invalidateCache(); } return true; } }); } else { throw new UnauthorizedException(); } } else { throw new UnauthenticatedException(); } } else { callContext.proceed(); } }
private void securityCheck(final Set<Role> requiredRoleNames, final RemoteCallContext callContext) { if (securityContext.isUserCacheValid()) { if (securityContext.hasCachedUser()) { if (securityContext.getCachedUser().getRoles().containsAll(requiredRoleNames)) { callContext.proceed(new RemoteCallback<Object>() { @Override public void callback(final Object response) { callContext.setResult(response); } }, new ErrorCallback<Object>() { @Override public boolean error(Object message, Throwable throwable) { if (throwable instanceof UnauthenticatedException) { securityContext.invalidateCache(); } return true; } }); } else { throw new UnauthorizedException(); } } else { throw new UnauthenticatedException(); } } else { callContext.proceed(); } }