Вы можете использовать TextBlock с Runs. Вот пример:
var text = new TextBlock();
text.Inlines.Add(new Bold(new Run("Bold:")));
text.Inlines.Add(new Run(" nonbold"));
label2.Content = text;
Не забывайте, что то, что на самом деле происходит при решении, предоставить ли доступ, - то, что URL и существующая аутентификация передаются через серию AccessDecisionVoters, одно из значения по умолчанию, которого RoleVoter. Этот избиратель проверяет конфигурацию на требуемый ресурс, и если определенная роль будет требоваться, то отклонит просьбу, если существующая аутентификация не будет иметь той роли.
Таким образом к решению - можно добавить других избирателей, которые умирают перед ролевым избирателем. Каждый избиратель должен возвратить ПРЕДОСТАВЛЕНИЕ, ОТКЛОНИТЬ или ВОЗДЕРЖАТЬСЯ, и обработка только продолжается более поздним избирателям, если ВОЗДЕРЖИВАЮТСЯ, возвращается. Таким образом можно записать собственному избирателю (или снова использовать существующего, если это работало бы), имейте его огонь перед ролевым избирателем и безусловно предоставьте доступ к любым запросам к ресурсам, к которым Вы обращаетесь.
Я сделал что-то вроде этого в текущем проекте, где определенные переходные специализированные атрибуты могут позволить кому-то ресурсы доступа, что обычно они не могли бы, и он работает хорошо подходом.
Предполагая, что вы используете Spring Security 3, источник этой информации (какие атрибуты / роли настраиваются для конкретного пути), является фильтраинвоцитациямиМетметатаатазатриссий, которая вводится в фильтры. Таким образом, если у вас есть определенный URL, то вы можете запросить настроенные атрибуты, передав фильтровающую возможность (созданный из запроса и ответа) к методу FilterInvocationsecationseathermate ().
Получение ссылки на внутренние бобы, созданные пространством имен, может быть немного сложно. Предполагая, что у вас есть свой собственный боб (или бобы), от которого вы хотите сделать звонок от, вы можете ввести их в них, добавив его в них, добавив его, добавив его, добавив устройство BeanPostProcessor в контекст вашего приложения, который реализуется что-то вроде этого:
public class FilterSecurityMDSExtractor implements BeanPostProcessor, BeanFactoryAware {
private ConfigurableListableBeanFactory bf;
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
if (bean instanceof FilterInvocationSecurityMetadataSource) {
// Get your own bean from the BeanFactory here and inject the SecurityMetadataSource into it
}
return bean;
}
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
return bean;
}
public void setBeanFactory(BeanFactory beanFactory) throws BeansException {
this.bf = (ConfigurableListableBeanFactory)beanFactory;
}
}
Обратите внимание, что Spring Security автоматически регистрирует WebInvocationPrivileGeevaluatoruator в контексте, который можно использовать для проверки того, имеет ли у пользователя возможность вызывать определенный URL, не вызывая его. Это похоже, в том, что он запрашивает безопасностьМЕТАТАДАТАСУРС, но не совсем то, что вы после здесь.