Browse Source

Add native hint for the users JDBC schema

Closes gh-11907
pull/11946/head
Marcus Da Coregio 4 years ago
parent
commit
ef879aadd6
  1. 6
      core/src/main/java/org/springframework/security/aot/hint/CoreSecurityRuntimeHints.java
  2. 6
      core/src/test/java/org/springframework/security/aot/hint/CoreSecurityRuntimeHintsTests.java

6
core/src/main/java/org/springframework/security/aot/hint/CoreSecurityRuntimeHints.java

@ -42,6 +42,7 @@ import org.springframework.security.authentication.event.AuthenticationFailurePr @@ -42,6 +42,7 @@ import org.springframework.security.authentication.event.AuthenticationFailurePr
import org.springframework.security.authentication.event.AuthenticationFailureProxyUntrustedEvent;
import org.springframework.security.authentication.event.AuthenticationFailureServiceExceptionEvent;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.security.core.userdetails.jdbc.JdbcDaoImpl;
/**
* {@link RuntimeHintsRegistrar} for core classes
@ -57,6 +58,7 @@ class CoreSecurityRuntimeHints implements RuntimeHintsRegistrar { @@ -57,6 +58,7 @@ class CoreSecurityRuntimeHints implements RuntimeHintsRegistrar {
registerExpressionEvaluationHints(hints);
registerMethodSecurityHints(hints);
hints.resources().registerResourceBundle("org.springframework.security.messages");
registerDefaultJdbcSchemaFileHint(hints);
}
private void registerMethodSecurityHints(RuntimeHints hints) {
@ -91,4 +93,8 @@ class CoreSecurityRuntimeHints implements RuntimeHintsRegistrar { @@ -91,4 +93,8 @@ class CoreSecurityRuntimeHints implements RuntimeHintsRegistrar {
ProviderNotFoundException.class).map(TypeReference::of).toList();
}
private void registerDefaultJdbcSchemaFileHint(RuntimeHints hints) {
hints.resources().registerPattern(JdbcDaoImpl.DEFAULT_USER_SCHEMA_DDL_LOCATION);
}
}

6
core/src/test/java/org/springframework/security/aot/hint/CoreSecurityRuntimeHintsTests.java

@ -131,4 +131,10 @@ class CoreSecurityRuntimeHintsTests { @@ -131,4 +131,10 @@ class CoreSecurityRuntimeHintsTests {
LockedException.class, UsernameNotFoundException.class, ProviderNotFoundException.class);
}
@Test
void defaultJdbcSchemaFileHasHints() {
assertThat(RuntimeHintsPredicates.resource()
.forResource("org/springframework/security/core/userdetails/jdbc/users.ddl")).accepts(this.hints);
}
}

Loading…
Cancel
Save