@Test public void testAdminOrUserRequiredForReceive() { String beanName = "adminOrUserRequiredForReceive"; messageChannel.setBeanName(beanName); MessageChannel proxy = (MessageChannel) applicationContext.getAutowireCapableBeanFactory() .applyBeanPostProcessorsAfterInitialization(messageChannel, beanName); assertTrue("Channel was not proxied", AopUtils.isAopProxy(proxy)); Advisor[] advisors = ((Advised) proxy).getAdvisors(); assertEquals("Wrong number of interceptors", 1, advisors.length); ChannelSecurityInterceptor interceptor = (ChannelSecurityInterceptor) advisors[0].getAdvice(); ChannelAccessPolicy policy = this.retrievePolicyForPatternString(beanName, interceptor); assertNotNull("Pattern '" + beanName + "' is not included in mappings", policy); Collection<ConfigAttribute> sendDefinition = policy.getConfigAttributesForSend(); Collection<ConfigAttribute> receiveDefinition = policy.getConfigAttributesForReceive(); Collection<String> receiveRoles = this.getRolesFromDefintion(receiveDefinition); assertTrue("ROLE_ADMIN not found as receive attribute", receiveRoles.contains("ROLE_ADMIN")); assertTrue("ROLE_USER not found as receive attribute", receiveRoles.contains("ROLE_USER")); assertTrue("Policy applies to receive", sendDefinition.size() == 0); }
@Test public void testAdminOrUserRequiredForSend() { String beanName = "adminOrUserRequiredForSend"; messageChannel.setBeanName(beanName); MessageChannel proxy = (MessageChannel) applicationContext.getAutowireCapableBeanFactory() .applyBeanPostProcessorsAfterInitialization(messageChannel, beanName); assertTrue("Channel was not proxied", AopUtils.isAopProxy(proxy)); Advisor[] advisors = ((Advised) proxy).getAdvisors(); assertEquals("Wrong number of interceptors", 1, advisors.length); ChannelSecurityInterceptor interceptor = (ChannelSecurityInterceptor) advisors[0].getAdvice(); ChannelAccessPolicy policy = this.retrievePolicyForPatternString(beanName, interceptor); assertNotNull("Pattern '" + beanName + "' is not included in mappings", policy); Collection<ConfigAttribute> sendDefinition = policy.getConfigAttributesForSend(); Collection<ConfigAttribute> receiveDefinition = policy.getConfigAttributesForReceive(); Collection<String> sendRoles = this.getRolesFromDefintion(sendDefinition); assertTrue("ROLE_ADMIN not found as send attribute", sendRoles.contains("ROLE_ADMIN")); assertTrue("ROLE_USER not found as send attribute", sendRoles.contains("ROLE_USER")); assertTrue("Policy applies to receive", receiveDefinition.size() == 0); }
@Test public void testAdminRequiredForReceive() { String beanName = "adminRequiredForReceive"; messageChannel.setBeanName(beanName); MessageChannel proxy = (MessageChannel) applicationContext.getAutowireCapableBeanFactory() .applyBeanPostProcessorsAfterInitialization(messageChannel, beanName); assertTrue("Channel was not proxied", AopUtils.isAopProxy(proxy)); Advisor[] advisors = ((Advised) proxy).getAdvisors(); assertEquals("Wrong number of interceptors", 1, advisors.length); ChannelSecurityInterceptor interceptor = (ChannelSecurityInterceptor) advisors[0].getAdvice(); ChannelAccessPolicy policy = this.retrievePolicyForPatternString(beanName, interceptor); assertNotNull("Pattern '" + beanName + "' is not included in mappings", policy); Collection<ConfigAttribute> sendDefinition = policy.getConfigAttributesForSend(); Collection<ConfigAttribute> receiveDefinition = policy.getConfigAttributesForReceive(); Collection<String> receiveRoles = this.getRolesFromDefintion(receiveDefinition); assertTrue("ROLE_ADMIN not found as receive attribute", receiveRoles.contains("ROLE_ADMIN")); assertTrue("Policy applies to receive", sendDefinition.size() == 0); }
@Test public void testAdminRequiredForSend() { String beanName = "adminRequiredForSend"; messageChannel.setBeanName(beanName); MessageChannel proxy = (MessageChannel) applicationContext.getAutowireCapableBeanFactory() .applyBeanPostProcessorsAfterInitialization(messageChannel, beanName); assertTrue("Channel was not proxied", AopUtils.isAopProxy(proxy)); Advisor[] advisors = ((Advised) proxy).getAdvisors(); assertEquals("Wrong number of interceptors", 1, advisors.length); ChannelSecurityInterceptor interceptor = (ChannelSecurityInterceptor) advisors[0].getAdvice(); ChannelAccessPolicy policy = this.retrievePolicyForPatternString(beanName, interceptor); assertNotNull("Pattern '" + beanName + "' is not included in mappings", policy); Collection<ConfigAttribute> sendDefinition = policy.getConfigAttributesForSend(); Collection<ConfigAttribute> receiveDefinition = policy.getConfigAttributesForReceive(); assertTrue("ROLE_ADMIN not found as send attribute", this.getRolesFromDefintion(sendDefinition).contains("ROLE_ADMIN")); assertTrue("Policy applies to receive", receiveDefinition.size() == 0); }
@Test public void testAdminRequiredForSendAndReceive() { String beanName = "adminRequiredForSendAndReceive"; messageChannel.setBeanName(beanName); MessageChannel proxy = (MessageChannel) applicationContext.getAutowireCapableBeanFactory() .applyBeanPostProcessorsAfterInitialization(messageChannel, beanName); assertTrue("Channel was not proxied", AopUtils.isAopProxy(proxy)); Advisor[] advisors = ((Advised) proxy).getAdvisors(); assertEquals("Wrong number of interceptors", 1, advisors.length); ChannelSecurityInterceptor interceptor = (ChannelSecurityInterceptor) advisors[0].getAdvice(); ChannelAccessPolicy policy = this.retrievePolicyForPatternString(beanName, interceptor); assertNotNull("Pattern '" + beanName + "' is not included in mappings", policy); Collection<ConfigAttribute> sendDefinition = policy.getConfigAttributesForSend(); Collection<ConfigAttribute> receiveDefinition = policy.getConfigAttributesForReceive(); assertNotNull("Pattern does not apply to 'send'", sendDefinition); assertNotNull("Pattern does not apply to 'receive'", receiveDefinition); Collection<String> sendRoles = this.getRolesFromDefintion(sendDefinition); Collection<String> receiveRoles = this.getRolesFromDefintion(receiveDefinition); assertTrue("ROLE_ADMIN not found in send attributes", sendRoles.contains("ROLE_ADMIN")); assertTrue("ROLE_ADMIN not found in receive attributes", receiveRoles.contains("ROLE_ADMIN")); }