Wildfly 15 получает EJBContext в синглтоне от jax rs, вошедшего в систему пользователя

просто используйте reverse() в массиве, предположим, что если вы сохраняете значения в массиве items[], тогда выполните this.items.reverse()

 ref.subscribe(snapshots => {
       this.loading.dismiss();

      this.items = [];
      snapshots.forEach(snapshot => {

        this.items.push(snapshot);

      });
      **this.items.reverse();**
    },
1
задан auryn31 17 January 2019 в 14:31
поделиться

1 ответ

У вас есть как минимум три проблемы:

  1. <subsystem xmlns="urn:jboss:domain:security:2.0"> - это устаревший элемент конфигурации, который не связан с elytron;

  2. [1129 ] Вы полностью пропустили конфигурацию безопасности ejb3;

  3. Ваш метод EJB не защищен с помощью @RolesAllowed(...).

Я получил похожий пример работы:

  1. Создайте элитронную область свойств:

    /subsystem=elytron/properties-realm=DemoPropsRealm:add(groups-attribute=groups,\
       groups-properties={\
         path=demo-roles.properties,relative-to=jboss.server.config.dir},\
       users-properties={\
         path=demo-users.properties,relative-to=jboss.server.config.dir,plain-text=true})
    
  2. [ 1133] Создайте домен безопасности elytron:

    /subsystem=elytron/security-domain=DemoDomain:add(\
       realms=[{realm=DemoPropsRealm,role-decoder=groups-to-roles}],\
       default-realm=DemoPropsRealm,permission-mapper=default-permission-mapper)
    
  3. Создайте фабрику http-аутентификации elytron , которая сопоставлена ​​с нашим DemoDomain: [ 1134]

    /subsystem=elytron/http-authentication-factory=demo-http-auth:add(\
       http-server-mechanism-factory=global,\
       security-domain=DemoDomain,\
       mechanism-configurations=[{\
         mechanism-name=BASIC,\
         mechanism-realm-configurations=[{\
           realm-name=DemoApplicationDomain\
         }]\
       }])
    
  4. Сопоставить домен безопасности приложения ejb3 с нашим DemoDomain

    /subsystem=ejb3/application-security-domain=\
        DemoApplicationDomain:add(security-domain=DemoDomain)
    
  5. Ссылка undertow домен безопасности приложения подсистемы для нашей фабрики http-authentication:

    /subsystem=undertow/application-security-domain=\
        DemoApplicationDomain:add(http-authentication-factory=demo-http-auth)
    

    «DemoApplicationDomain» будет именем области в элементе login-config файла web.xml и security-domain в файл jboss-web.xml.

  6. Объявите разрешенные роли в вашем методе EJB:

    @RolesAllowed("Admin")
    public void printText(String text) {
        System.out.println(text + ":: EJBContext: " + context.getCallerPrincipal().getName()
         + "  SessionContext: " + ctx.getCallerPrincipal().getName());      
    }
    

Пример источника находится в GitHub по адресу jax-rs-basic-auth . [+1139]

0
ответ дан Steve C 17 January 2019 в 14:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: