@Override public boolean isAccessGranted(String beanName, UI ui) { Secured viewSecured = applicationContext.findAnnotationOnBean(beanName, Secured.class); if ( viewSecured == null ) { return true; } else if ( security.hasAccessDecisionManager() ) { return true; // Leave decision to the second hook } else { return security.hasAnyAuthority(viewSecured.value()); } }
@Override public void setVaadinSecurity(VaadinSecurity vaadinSecurity) { security = vaadinSecurity; applicationContext = security.getApplicationContext(); }
@Override public boolean isAccessGranted(String beanName, UI ui, View view) { Secured viewSecured = view.getClass().getAnnotation(Secured.class); if ( viewSecured == null || !security.hasAccessDecisionManager() ) { return true; // Decision is already done if there is no AccessDecisionManager } else { return security.hasAccessToSecuredObject(view); } } }
logger.trace("No @PreAuthorize annotation found on view {}. Granting access.", beanName); return true; } else if (security.hasAccessDecisionManager()) { final Class<?> targetClass = AopUtils.getTargetClass(view); final Method method = ClassUtils.getMethod(targetClass, "enter", com.vaadin.navigator.ViewChangeListener.ViewChangeEvent.class); final AccessDecisionManager accessDecisionManager = security.getAccessDecisionManager(); final ExpressionBasedAnnotationAttributeFactory attributeFactory = new ExpressionBasedAnnotationAttributeFactory(new DefaultMethodSecurityExpressionHandler());
@Override public boolean isAccessGranted(UI ui, String beanName) { final Secured viewSecured = applicationContext.findAnnotationOnBean(beanName, Secured.class); if (viewSecured == null) { logger.trace("No @Secured annotation found on view {}. Granting access.", beanName); return true; } else { final boolean result = security.hasAnyAuthority(viewSecured.value()); logger.trace("Is access granted to view {}: {}", beanName, result); return result; } } }
private void login(final String tenant, final String user, final String password, final boolean setCookies) { try { if (multiTenancyIndicator.isMultiTenancySupported()) { vaadinSecurity.login(new TenantUserPasswordAuthenticationToken(tenant, user, password)); } else { vaadinSecurity.login(new UsernamePasswordAuthenticationToken(user, password)); } /* set success login cookies */ if (setCookies && useCookie) { setCookies(); } } catch (final CredentialsExpiredException e) { LOG.debug("Credential expired", e); loginCredentialsExpiredNotification(); } catch (final AuthenticationException e) { LOG.debug("Authentication failed", e); /* if not successful */ loginAuthenticationFailedNotification(); } catch (final Exception e) { LOG.debug("Login failed", e); loginAuthenticationFailedNotification(); } }
logger.trace("No @PreAuthorize annotation found on view {}. Granting access.", beanName); return true; } else if (security.hasAccessDecisionManager()) { final Class<?> targetClass = AopUtils.getTargetClass(view); final Method method = ClassUtils.getMethod(targetClass, "enter", com.vaadin.navigator.ViewChangeListener.ViewChangeEvent.class); final AccessDecisionManager accessDecisionManager = security.getAccessDecisionManager(); final ExpressionBasedAnnotationAttributeFactory attributeFactory = new ExpressionBasedAnnotationAttributeFactory(new DefaultMethodSecurityExpressionHandler());
@Override public boolean isAccessGranted(UI ui, String beanName) { final Secured viewSecured = applicationContext.findAnnotationOnBean(beanName, Secured.class); if (viewSecured == null) { logger.trace("No @Secured annotation found on view {}. Granting access.", beanName); return true; } else { final boolean result = security.hasAnyAuthority(viewSecured.value()); logger.trace("Is access granted to view {}: {}", beanName, result); return result; } } }
private void login(final String tenant, final String user, final String password, final boolean setCookies) { try { if (multiTenancyIndicator.isMultiTenancySupported()) { vaadinSecurity.login(new TenantUserPasswordAuthenticationToken(tenant, user, password)); } else { vaadinSecurity.login(new UsernamePasswordAuthenticationToken(user, password)); } /* set success login cookies */ if (setCookies && useCookie) { setCookies(); } } catch (final CredentialsExpiredException e) { LOG.debug("Credential expired", e); loginCredentialsExpiredNotification(); } catch (final AuthenticationException e) { LOG.debug("Authentication failed", e); /* if not successful */ loginAuthenticationFailedNotification(); } catch (final Exception e) { LOG.debug("Login failed", e); loginAuthenticationFailedNotification(); } }
@Override public boolean isAccessGranted(String beanName, UI ui) { PreAuthorize viewSecured = applicationContext.findAnnotationOnBean(beanName, PreAuthorize.class); if ( viewSecured == null ) { return true; } else if ( security.hasAccessDecisionManager() ) { final Class<?> targetClass = AopUtils.getTargetClass(applicationContext.getBean(beanName)); final Method method = ClassUtils.getMethod(AopUtils.getTargetClass(applicationContext.getBean(beanName)), "enter", com.vaadin.navigator.ViewChangeListener.ViewChangeEvent.class); final MethodInvocation methodInvocation = MethodInvocationUtils.createFromClass(targetClass, method.getName()); final Authentication authentication = SecurityContextHolder.getContext().getAuthentication(); final AccessDecisionManager accessDecisionManager = security.getAccessDecisionManager(); final ExpressionBasedAnnotationAttributeFactory attributeFactory = new ExpressionBasedAnnotationAttributeFactory(new DefaultMethodSecurityExpressionHandler()); Collection<ConfigAttribute> atributi = new ArrayList<ConfigAttribute>(); atributi.add(attributeFactory.createPreInvocationAttribute(null, null, viewSecured.value())); try { accessDecisionManager.decide(authentication, methodInvocation, atributi); return true; } catch (InsufficientAuthenticationException e) { return false; } catch (AccessDeniedException e) { return false; } } else { return true; // Access decision manager required for @PreAuthorize() } }
@Override public boolean passesFilter(SideBarItemDescriptor descriptor) { Secured secured = descriptor.findAnnotationOnBean(Secured.class); if (secured != null) { return vaadinSecurity.hasAnyAuthority(secured.value()); } return true; } }