この問題の解決策を見つけました。
@Configuration
@Lazy(true)
@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
public class Config
{
@Autowired
Repository repository1;
@Autowired
Repository repository2;
@Bean
public PermissionEvaluator permissionEvaluator()
{
List<PermissionEvaluator> evaluators = new ArrayList<>();
evaluators.add(new PermissionEvaluator1(repository1));
evaluators.add(new PermissionEvaluator2(repository2));
return new EvaluatorsAggregator(evaluators);
}
}
多分これが誰かを助けることができる:私はその後、私は必要なすべての評価者を追加した設定ファイルに
public class EvaluatorsAggregator
implements PermissionEvaluator
{
private List<PermissionEvaluator> evaluators;
public EvaluatorsAggregator(List<PermissionEvaluator> evaluators)
{
super();
this.evaluators = evaluators;
}
@Override
public boolean hasPermission(Authentication authentication, Object targetDomainObject, Object permission)
{
return evaluators.stream()
.map(ev -> ev.hasPermission(authentication, targetDomainObject, permission))
.reduce(Boolean::logicalOr)
.orElse(false);
}
@Override
public boolean hasPermission(
Authentication authentication,
Serializable targetId,
String targetType,
Object permission)
{
return false;
}
}
を作成しました。
あなたの例外は何ですか? stacktraceを送信する –