Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > JAAS авторизация с клиетской машины


Автор: hamsterKSU 19.6.2007, 21:10
Есть клиетское приложение которое должно пройти авторизацию на сервере.
Подскажите плиз где должен лежать файлик auth.conf? если на сервер то как установить свойство
 
Код

System.setProperty("java.security.auth.login.config",?);

имеем слудющую конфигурацию домена
Код

medialib {
org.jboss.security.auth.spi.DatabaseServerLoginModule required
hashAlgorithm="MD5"
hashEncoding="base64"
dsJndiName="java:jdbc/elib"
principalsQuery="query1"
rolesQuery="query2"
;
};


query1 и query2 - рабочие, так как аналогичная авторизация работает в веб проекте.

Логин происходит следующим образом
Код

org.jboss.security.auth.callback.UsernamePasswordHandler handler =
          new org.jboss.security.auth.callback.UsernamePasswordHandler(
               userName, password.toCharArray());
final javax.security.auth.login.LoginContext lc =
          new javax.security.auth.login.LoginContext("medialib", handler);

lc.login();

Автор: mindflyer 20.6.2007, 08:52
Файл должен быть на клиентской стороне, доступен в classpath.
Но можно обойтись и вообще без файла, примерно так:

Код

        CallbackHandler handler = new UsernamePasswordHandler(userName, password);
        Configuration config = new Configuration() {
            public AppConfigurationEntry[] getAppConfigurationEntry(String name) {
                if ( name.equals("simple") ) {
                    AppConfigurationEntry entry = new AppConfigurationEntry(org.jboss.security.ClientLoginModule.class.getName(), LoginModuleControlFlag.REQUIRED, Collections.EMPTY_MAP);
                    AppConfigurationEntry[] entries = {entry};
                    return entries;
                }
                return null;
            }
            public void refresh() {}            
        };
        loginContext = new LoginContext("simple", null, handler, config);
        loginContext.login();

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)