powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / JavaEE6, JBoss6, авторизация в таймере
7 сообщений из 7, страница 1 из 1
JavaEE6, JBoss6, авторизация в таймере
    #37299070
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!

Есть таймер, запускащийся при старте

@Singleton
@Startup
....
@PostConstruct
....
createTimer
....
@Timeout

В этом бине есть инъекции других бинов, требующих (местами) авторизацию.
И весь модуль тоже её требует (через jboss.xml).

Соответственно вызывается login у логин-модуля. А данных авторизации
нет. Модуль самописный- можно что-то сотворить.

Вопрос- как правильно сделать так, чтобы авторизация не падала?
Задавать для таймера какую-то левую авторизацию ("инженерный пароль")?
Как-то запретить её через аннотации?

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
JavaEE6, JBoss6, авторизация в таймере
    #37299163
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, GKS_Samara!

> Вопрос- как правильно сделать так, чтобы авторизация не падала?
> Задавать для таймера какую-то левую авторизацию ("инженерный пароль")?
> Как-то запретить её через аннотации?

Пока сделал обходной путь добавляя к имени треда префикс, который
проверяется в проверке логина. Если тред тот и логин/пароль не задан-
проверку опускаем.

Это нормально? Не очень нравится...


--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
JavaEE6, JBoss6, авторизация в таймере
    #37299722
marx_freedom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне помогало одно из двух

1) @RunAs("rolename") на бине клиенте
2) "инженерный" логин+пароль

Второй способ использовал очень давно, на 4ом jboss у меня что-то не заводилось, а последнее время @RunAs устраивал. Но лично мне кажется, что инженерный логин лучше чем префикс в имени треда. Как его кстати добавили?, а то таймеры я не использовал никогда, все quartz :)
...
Рейтинг: 0 / 0
JavaEE6, JBoss6, авторизация в таймере
    #37300419
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, marx_freedom!

> Мне помогало одно из двух
>
> 1) @RunAs("rolename") на бине клиенте
> 2) "инженерный" логин+пароль

О, не знал про @RunAs.
Самое правильное решение, на мой взгляд.
Только не работает- всё одно в логин заходим и там надо как-то опознать
клиента.

> Но лично мне кажется,
> что инженерный логин лучше чем префикс в имени треда. Как его кстати
> добавили?,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
     String threadName = Thread.currentThread().getName();
     try {
       Thread.currentThread().setName("NULL Login thread::" + threadName);
       .....
     } finally {
       Thread.currentThread().setName(threadName);
     }

Мне думается, что это лучше инженерного пароля, т.к. про инженерный
пароль можно узнать и начать использовать, а подделать имя потока без
деплоя нельзя.

> а то таймеры я не использовал никогда, все quartz :)

Я стараюсь стандартом ограничиваться (потому на 6ку и хочу перейти).
С переходом на 6ку разве что логин-модуль остался специфичным.

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
JavaEE6, JBoss6, авторизация в таймере
    #37847639
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос к автору, а можете показать как в JBoss 6 вы запускаете задание через определенный таймаут? сейчас занимаюсь очень похожей проблемой.
...
Рейтинг: 0 / 0
JavaEE6, JBoss6, авторизация в таймере
    #37847691
GKS_Samara
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день, GregTk!
> Вопрос к автору, а можете показать как в JBoss 6 вы запускаете задание
> через определенный таймаут? сейчас занимаюсь очень похожей проблемой.

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
@Singleton
@Startup
public class ProcessWaitingWorkPoint {
  @Resource
  private TimerService timerService;

  private Timer timer;

  @PostConstruct
  public void startup() {
    long minute = 1000 * 60;
    long time = System.currentTimeMillis() + minute * 2; // Это я жду,
чтобы все остальные бины успели задеплоится
    timer = timerService.createTimer(new Date(time), minute, TIMER_NAME);
  }

  @Timeout
  public void processTimerEvent(Timer timer) {
    if (timer.getInfo() instanceof String) {
      String info = (String) timer.getInfo();
      if (info.equals(TIMER_NAME)) {
        String threadName = Thread.currentThread().getName();
        try {
          Thread.currentThread().setName(
            "NULL Login thread::" + threadName);
          Тут собственно работает;
        } finally {
          Thread.currentThread().setName(threadName);
        }
      }
    }
  }



Ну и не забывая о теме- по имени процесса модуль авторизации понимает,
где мы находимся и подставляет нужного пользователя

--
Алексей
JID: alxt@ya.ru
Posted
via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
JavaEE6, JBoss6, авторизация в таймере
    #37848558
GregTk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GKS_Samara,

большое спасибо, всё работает :)
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / JavaEE6, JBoss6, авторизация в таймере
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]