2016-10-10 3 views
0

Ich habe ein Back-End, das auf Spring-Boot und dann einige benutzerdefinierte Code aus meiner Schule gebaut ist. Das Frontend ist reine Winkelapplikation, die ich von einem anderen Server durch einen Schluck serviere. Sie sind nur durch REST-Aufrufe verbunden.Spring-Boot: Anwendung zum Tomcat-Server hinzufügen

Es gibt bereits ein Authentifizierungsmodul im Backend, und jetzt muss ich diese winklige Anwendung von demselben Tomcat-Server aus bedienen, auf dem das Back-End läuft, so dass es auch dieses Authentifizierungsmodul verwenden kann.

ich gefunden habe this about multiple connectors so kopiert ich es als Klasse nach mehreren Anschlüsse einzurichten:

@ConfigurationProperties 
public class TomcatConfiguration { 

    @Bean 
    public EmbeddedServletContainerFactory servletContainer() { 
     TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory(); 
     //tomcat.addAdditionalTomcatConnectors(createSslConnector()); 
     return tomcat; 
    } 

    private Connector createSslConnector() { 
     Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol"); 
     Http11NioProtocol protocol = (Http11NioProtocol) connector.getProtocolHandler(); 
     try { 
      File keystore = new ClassPathResource("keystore").getFile(); 
      File truststore = new ClassPathResource("keystore").getFile(); 
      connector.setScheme("https"); 
      connector.setSecure(true); 
      connector.setPort(8443); 
      protocol.setSSLEnabled(true); 
      protocol.setKeystoreFile(keystore.getAbsolutePath()); 
      protocol.setKeystorePass("changeit"); 
      protocol.setTruststoreFile(truststore.getAbsolutePath()); 
      protocol.setTruststorePass("changeit"); 
      protocol.setKeyAlias("apitester"); 
      return connector; 
     } catch (IOException ex) { 
      throw new IllegalStateException("can't access keystore: [" + "keystore" 
        + "] or truststore: [" + "keystore" + "]", ex); 
     } 
    } 
} 

Problem ist, dass ich nicht sehen oder finden nicht, wie ich Setup sollte diese Anschlüsse so dienen sie von meiner angularJS Build-Ordner.

Bei der Suche kam ich auf Spring-Boot : How can I add tomcat connectors to bind to controller, aber ich bin mir nicht sicher, ob in dieser Lösung ich meine aktuelle Anwendung ändern oder eine übergeordnete Anwendung für beide Anwendungen erstellen sollte.

Meine aktuelle Anwendung Haupt sieht wie folgt aus:

@Configuration 
@ComponentScan({"be.ugent.lca","be.ugent.sherpa.configuration"}) 
@EnableAutoConfiguration 
@EnableSpringDataWebSupport 
public class Application extends SpringBootServletInitializer{ 
    public static void main(String[] args) { 
     SpringApplication.run(Application.class, args); 

    } 
} 

Wenn möglich ich einige weitere Informationen über möchten, was Anschlüsse sind im Frühjahr-Boot-Kontext. Wenn dies nicht der richtige Weg ist, möchte ich, dass jemand diese zweite Lösung anpasst oder eine Änderung in meinem Code vorschlägt.

Ich bin wirklich nicht sicher genug über diese Lösung, dass ich meine Anwendung darüber brechen will. (obwohl es mit github gesichert ist)

Antwort

1

Platzieren Sie einfach Ihre AngularJS + andere Front-End-Assets in src/main/resources/static Ordner, Spring Boot will serve them automatically.

+0

Danke, das hat mir geholfen, in die richtige Richtung zu gehen. Ich habe einige spezifische Probleme bei der Implementierung gefunden, aber ich denke, es ist besser, eine neue Frage dafür zu öffnen. – turoni

Verwandte Themen