mvn appengine: stage - стандартная среда - откуда берется автоматический app.yaml? - PullRequest
0 голосов
/ 19 апреля 2019

Я использую mvn и appengine-maven-plugin для подготовки и развертывания стандартного проекта механизма приложений для java 8. Это работает локально, но развернутый проект перестал работать, и если я смотрю на target / appengine-staging / app. yaml, там есть несколько загадочных нерабочих маршрутов, и стандартный / .* маршрут пропал.

Где я могу найти некоторую информацию о том, что генерирует app.yaml и на что он ссылается для создания этих обработчиков? Они похожи на некоторые реальные маршруты, но не совсем совпадают.

mvn appengine:stage -DskipTests -Dspring.profiles.active=development
# ./target/appengine-staging/app.yaml contains bad handlers

Мой apppengine-web.xml

<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
  <threadsafe>true</threadsafe>
  <sessions-enabled>true</sessions-enabled>
  <runtime>java8</runtime>
  <instance-class>B1</instance-class>
  <basic-scaling>
    <max-instances>1</max-instances>
    <idle-timeout>10m</idle-timeout>
  </basic-scaling>
  <env-variables>
    <env-var name="SPRING_PROFILES_ACTIVE" value="development" />
  </env-variables>
</appengine-web-app>

Мой web.xml

<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5">
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>tasks</web-resource-name>
            <url-pattern>/**/delete_handler</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin</role-name>
        </auth-constraint>
    </security-constraint>
</web-app>

WebSecurityConfigurerAdapter

@Configuration
@EnableWebSecurity
public class ApplicationSecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    public void configure(WebSecurity web) throws Exception {
        web
          .ignoring()
            .antMatchers("/**/health")
            .antMatchers("/**/delete_handler")
            ;
      }

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.csrf().disable()
        .authorizeRequests()
            .antMatchers("/**/health").permitAll()
            .antMatchers("/**/delete_handler").permitAll()
            .antMatchers("/_ah/*").permitAll()
            .anyRequest().authenticated()
            .and().httpBasic();
    }

    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
         // snip
    }

}

Сгенерированный нерабочий app.yaml

runtime: java8
instance_class: B1
basic_scaling:
  max_instances: 1
  idle_timeout: 10m
inbound_services:
- warmup
derived_file_type:
- java_precompiled
threadsafe: True
auto_id_policy: default
env_variables:
  'SPRING_PROFILES_ACTIVE': 'development'
api_version: '1.0'
handlers:
- url: /
  script: unused
  login: optional
  secure: optional
- url: /_ah/.*.*.*/delete_handler
  script: unused
  login: admin
  secure: optional
- url: /.*/
  script: unused
  login: optional
  secure: optional
- url: /_ah/.*
  script: unused
  login: optional
  secure: optional

skip_files: app.yaml
...