如何使用GSSAPI将Java Swing应用程序连接到mariadb DB?

时间:2018-08-31 18:46:11

标签: java authentication mariadb gssapi

我有一个应用程序,该应用程序需要使用GSSAPI连接到MariaDB DB 10.1版。 我已经在数据库端启用了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

任何想法如何解决?

0 个答案:

没有答案