Die Trennung jhipster back-end und front-end-in zwei Projekte?

Ich versuche jhipster mit token-basierte Authentifizierung. Es funktioniert perfekt.

Nun, ich will laufen-back-end und front-end-code auf verschiedenen domains. Wie kann ich dies tun?


Dies ist, was ich versucht habe:

  1. Laufen yo jhipster und wählen Sie token-basierte Authentifizierung-option:

    Welcome to the JHipster Generator
    
    ? (1/13) What is the base name of your application? jhipster
    ? (2/13) What is your default Java package name? com.mycompany.myapp
    ? (3/13) Do you want to use Java 8? Yes (use Java 8)
    ? (4/13) Which *type* of authentication would you like to use? Token-based authentication (stateless, with a token)
    ? (5/13) Which *type* of database would you like to use? SQL (H2, MySQL, PostgreSQL)
    ? (6/13) Which *production* database would you like to use? MySQL
    ? (7/13) Which *development* database would you like to use? H2 in-memory with Web console
    ? (8/13) Do you want to use Hibernate 2nd level cache? Yes, with ehcache (local cache, for a single node)
    ? (9/13) Do you want to use clustered HTTP sessions? No
    ? (10/13) Do you want to use WebSockets? No
    ? (11/13) Would you like to use Maven or Gradle for building the backend? Maven (recommended)
    ? (12/13) Would you like to use Grunt or Gulp.js for building the frontend? Grunt (recommended)
    ? (13/13) Would you like to use the Compass CSS Authoring Framework? No
    
    ...
    
    I'm all done. Running bower install & npm install for you
    ^C
  2. Machen Sie zwei Kopien des Projekts als jhipster/backend und jhipster/frontend

  3. Löschen Sie unnötige Dateien von back-end und front-end -

    rm -rf backend/.bowerrc
    rm -rf backend/.jshintrc
    rm -rf backend/bower.json
    rm -rf backend/Gruntfile.js
    rm -rf backend/package.json
    rm -rf backend/src/main/webapp
    rm -rf backend/src/test/javascript
    
    rm -rf frontend/pom.xml
    rm -rf frontend/src/main/java
    rm -rf frontend/src/main/resources
    rm -rf frontend/src/test/gatling
    rm -rf frontend/src/test/java
    rm -rf frontend/src/test/resources
  4. Änderungen im code, um vollständig zu entfernen backend/frontend Abhängigkeit

    • frontend/Gruntfile.js

      ...
      var parseVersionFromPomXml = function() {
          return '1.2.2.RELEASE';
      };
      ...
      browserSync: { ..., proxy: "localhost:8081" }
    • frontend/src/main/webapp/scripts/app/app.js

      angular.module('jhipsterApp', [...])
      .constant('API_URL', 'http://localhost:8080/')
      .run( ... )
    • frontend/src/main/webapp/scripts/**/*.service.js

      angular.module('jhipsterApp').factory(..., API_URL) {
          return $http.post(API_URL + 'api/authenticate', ...);
      }
      
      angular.module('jhipsterApp').factory('Account', function Account($resource, API_URL) {
          return $resource(API_URL + 'api/account', {}, {...});
      }
      
      //Make similar changes in all service files.
    • backend/pom.xml

      Entfernen yeoman-maven-plugin

    • backend/src/main/java/com/mycompany/myapp/SimpleCORSFilter.java

      //Copied from here: https://spring.io/guides/gs/rest-service-cors/
      
      @Component
      public class SimpleCORSFilter implements Filter {
          public void doFilter(...) {
              ...
              response.setHeader("Access-Control-Allow-Origin", "*");
              ...
          }
      }
  5. Laufen

    • Terminal Tab #1: BACKEND

      cd backend
      mvn spring-boot:run
      
      ...
      [INFO] com.mycompany.myapp.Application - Started Application in 11.529 seconds (JVM running for 12.079)
      [INFO] com.mycompany.myapp.Application - Access URLs:
      ----------------------------------------------------------
              Local:          http://127.0.0.1:8080
              External:       http://192.168.56.1:8080
      ----------------------------------------------------------
    • Terminal Tab #2: FRONTEND

      cd frontend/src/main/webapp
      npm install -g http-server
      http-server
      
      Starting up http-server, serving ./ on: http://0.0.0.0:8081
      Hit CTRL-C to stop the server
    • Terminal Tab #3: GRUNZEN

      cd frontend
      bower install
      npm install
      grunt serve
      
      ...
      [BS] Proxying: http://localhost:8081
      [BS] Access URLs:
       -------------------------------------
             Local: http://localhost:3000
          External: http://10.34.16.128:3000
       -------------------------------------
                UI: http://localhost:3001
       UI External: http://10.34.16.128:3001
       -------------------------------------
  6. Durchsuchen http://localhost:3000/#/login

    Geben Sie username:password als admin:admin

    Unserer BACKEND Registerkarte liest:

    [DEBUG] com.mycompany.myapp.security.Http401UnauthorizedEntryPoint - Pre-authenticated entry point called. Rejecting access

Anscheinend mache ich etwas falsch. Was ist es?

  • Nur ein Gedanke, aber vielleicht könnten Sie überprüfen, dass die back-end ist in der Lage zu verarbeiten gültigen Anmeldedaten an. Siehe stackoverflow.com/questions/28269487/...
  • Haben Sie es geschafft, dies zum laufen?
  • Leider Nein. Ich aufgehört zu spielen mit jhipster kurz nachdem ich diese Frage gestellt.
  • Unten meine Antwort geholfen hat, ein paar andere und ist so, wie ich das problem gelöst. Bitte schauen Sie sich um und betrachten Sie es markieren als die akzeptierte Antwort.
InformationsquelleAutor musa | 2015-03-13
Schreibe einen Kommentar