Spring/Hibernate アプリケーションがあります。Hibernate によって作成されたカスタム タイプには Spring コンテキストが必要なので、Spring Aspects を使用して提供します。
@Configurable(preConstruction = true)
public class EncryptedStringUserType implements EnhancedUserType {
...
@EnableSpringConfigured
@EnableLoadTimeWeaving
public class RootConfiguration {
...
Spring Security を追加した後、次のように stderr に多数のメッセージが表示されました。
[AppClassLoader@14dad5dc] error can't determine implemented interfaces of missing type org.springframework.security.ldap.authentication.LdapAuthenticationProvider
when weaving type org.springframework.security.config.annotation.authentication.configurers.ldap.LdapAuthenticationProviderConfigurer
when weaving classes
when weaving
[Xlint:cantFindType]
織り込む必要のあるクラスのパッケージを指定して、他のパッケージを織り込まないようにすることは可能ですか?
解決
META-INF/aop.xml をリソース ルートに置き、不要なパッケージを除外します。
<!DOCTYPE aspectj PUBLIC "-//AspectJ//DTD//EN" "http://www.eclipse.org/aspectj/dtd/aspectj.dtd">
<aspectj>
<weaver>
<exclude within="org.springframework.security.config.annotation.authentication.configurers.ldap.*"/>
<exclude within="org.springframework.security.config.annotation.web.configurers.openid.*"/>
</weaver>
</aspectj>