Как подключить Java-приложение Swing к базе данных mariadb с помощью GSSAPI? - PullRequest
0 голосов
/ 31 августа 2018

У меня есть приложение, которое должно подключиться к базе данных MariaDB версии 10.1 с помощью GSSAPI. Я включил плагин GSSAPI на стороне базы данных и создал пользователя через -

    create user 'user'@'%' IDENTIFIED via 'gssapi' as 'user';

Теперь я пытаюсь подключиться из приложения как -

        Class.forName("org.mariadb.jdbc.Driver");
        con = DriverManager.getConnection(
                "jdbc:mariadb://localhost:3305/schema?user='user'&gssapi-principal-name='user@localhost'");

        stmt = con.createStatement();

Я получаю исключение при попытке установить соединение с БД -

java.sql.SQLInvalidAuthorizationSpecException: GSS-API authentication exception
at org.mariadb.jdbc.internal.util.ExceptionMapper.get(ExceptionMapper.java:121)
at org.mariadb.jdbc.internal.util.ExceptionMapper.throwException(ExceptionMapper.java:69)
at org.mariadb.jdbc.Driver.connect(Driver.java:110)
at java.sql.DriverManager.getConnection(Unknown Source)


Caused by: javax.security.auth.login.LoginException: Unable to obtain Principal Name for authentication 
at com.sun.security.auth.module.Krb5LoginModule.promptForName(Unknown Source)
at com.sun.security.auth.module.Krb5LoginModule.attemptAuthentication(Unknown Source)
at com.sun.security.auth.module.Krb5LoginModule.login(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at javax.security.auth.login.LoginContext.invoke(Unknown Source)
at javax.security.auth.login.LoginContext.access$000(Unknown Source)
at javax.security.auth.login.LoginContext$4.run(Unknown Source)
at javax.security.auth.login.LoginContext$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.login.LoginContext.invokePriv(Unknown Source)
at javax.security.auth.login.LoginContext.login(Unknown Source)
at org.mariadb.jdbc.internal.packet.send.SendGssApiAuthPacket.send(SendGssApiAuthPacket.java:115)
... 46 more

Есть идеи, как это решить?

...