2017-07-19 2 views
0

Ich baue eine neue Anwendung Frühling Boot mit und versuche Namen und Wert Eigenschaften in Modul-Option Attribut aus einer bestehenden Anwendung zu konfigurieren, wie gezeigt unten:
<security-domain name="someDomainName">
<authentication>
<login-module code="someClassName" module="someModule">
<module-option name="someName" value="someValue"/>
</login-module>
</authentication>
</security-domain>Konfiguration Eigenschaften/Attribute in standalone.xml im Frühjahr Boot erwähnt

Nun, wie kann ich die oben genannten Eigenschaften in standalone.xml erwähnt konfigurieren (wo JBoss Application Server verwendet wird) in Spring-Boot (beachten Sie, ich bin mit Apache Tomcat Web-Server).

Danke.

+0

Haben Sie meinen, wie 'properties' zu setzen oder wie ein' bean' von som definieren Der Typ/Klasse? – Tom

+0

Einstellungseigenschaften. – mandar

Antwort

0

Von was ich verstehe von dem Kommentar, den Sie in Ihrer neuen Spring Boot Java-Konfiguration erstellen und verwenden möchten. Die beste Praxis der Federverschluß zu erstellen und Eigenschaften ist die Schaffung einer bean für sie wie folgt vor:

@Component 
@ConfigurationProperties(prefix = "my") 
public class MyProperties { 
    private String myFirstProperty; 

    public String getMyFirstProperty() { 
     return this.myFirstProperty; 
    } 

    public void setMyFirstProperty(String myFirstProperty) { 
     this.myFirstProperty = myFirstProperty; 
    } 
} 

Nun, wenn Sie die Eigenschaft my.my-first-property=value in application.properties platzieren, die in src/main/resources Frühjahr Boot befinden sollte, wird automatisch Eigenschaften wählen vorbei das definierte Präfix (my in diesem Fall) und versuchen, sie mit der bean kommentiert mit @ConfigurationProperties.

Danach können Sie diese Bean irgendwo in Ihre Java-Konfiguration injizieren, um die Eigenschaften als Standard-POJO zu verwenden.

Sie können nun diese Bohne verwenden komplexere configuraiton mit Klassen, Aufzählungen, Listen, Karten usw. und ich empfehlen die Verwendung von YAML Syntax von application.properties

Weitere Informationen zu application.yml Wechsel zu erstellen: docs

EDIT: Beispiel, wie Sie die Eigenschaften in einer Konfigurationsklasse verwendet wird:

@Configuration 
public class WebSecurityConfig extends WebSecurityConfigurerAdapter { 

    private final MyProperties myProperties; 

    public WebSecurityConfig(MyProperties myProperties) { // inject the property class using constructor injections 
     this.myProperties = myProperties; 
    } 

    @Override 
    public void configure(AuthenticationManagerBuilder auth) throws Exception { 
     auth 
      .ldapAuthentication() 
       .userDnPatterns(myProperties.getMyFirstProperty()) // here i use a property loaded from external source (application.properties/yml) 
       .groupSearchBase("ou=groups") 
       .contextSource(contextSource()) 
       .passwordCompare() 
        .passwordEncoder(new LdapShaPasswordEncoder()) 
        .passwordAttribute("userPassword"); 
    } 

} 
+0

Dank @Tom für die Lösung, aber ich konnte herausfinden, dass, was ich suche LDAP-Server-Zugang ist. Die [link] (https://spring.io/guides/gs/authenticating-ldap/) hat mir teilweise dabei geholfen, mein Ziel zu erreichen. Der Ort, an dem ich jetzt feststecke, ist, wie man Module-Option-Eigenschaften mit der im Link beschriebenen Methode configure an eine Klasse übergibt. – mandar

+0

Was Sie tun können, ist die Verwendung des oben genannten Mechanismus zum Erstellen Ihrer Eigenschaften, dann injizieren und verwenden Sie diese Klasse in Ihrer 'WebSecurityConfig'. Ich werde meine Antwort mit einem Beispiel bearbeiten. – Tom

+0

Danke @ Tom für die Rückstellung. Diskutieren Sie das Gleiche mit LDAP-API-Entwicklern. – mandar

Verwandte Themen