3

I am getting an error when trying to create a datasource connection to MS SQL server using JTDS driver within my Spring Config. I am using domain authentication from a non windows machine.

ERROR:

Caused by: java.sql.SQLException: Login failed. 
The login is from an untrusted domain and cannot be used with Windows authentication.

Spring-Datasource.xml:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="net.sourceforge.jtds.jdbc.Driver"/>
    <property name="url" value="jdbc:jtds:sqlserver://MS_SERVER/ms_db;domain=myDomain;integrated security=false"/>
    <property name="username" value="myUser"/>
    <property name="password" value="myPassword"/>
</bean>

I can create the connection manually and works perfect like:

public static void main(String[] args) {
    System.out.println("Starting Connection test");

    Connection connection;

    String url = "jdbc:jtds:sqlserver://MS_SERVER/ms_db;domain=myDomain;integrated security=false";
    try {
        Class.forName("net.sourceforge.jtds.jdbc.Driver");
        connection = DriverManager.getConnection(url, "myUser","myPassword"));
        System.out.println("Connection successful");
    }
    catch (Exception e) {
        System.err.println("Cannot connect to database server");
        e.printStackTrace();
    }
}

Any suggestions would be appreciated

1
  • If you try with org.apache.commons.dbcp.BasicDataSource, does it work? Commented Jan 9, 2014 at 20:38

2 Answers 2

3

Try this:-

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="net.sourceforge.jtds.jdbc.Driver"/>
    <property name="url" value="jdbc:jtds:sqlserver://MS_SERVER/ms_db;domain=myDomain;integrated security=false"/>
    <property name="username" value="myUser"/>
    <property name="password" value="myPassword"/>
</bean>

Dependency for DBCP:-

<dependency>
    <groupId>commons-dbcp</groupId>
    <artifactId>commons-dbcp</artifactId>
    <version>1.4</version>
</dependency>
Sign up to request clarification or add additional context in comments.

Comments

0

As per http://jtds.sourceforge.net/faq.html you need to pass useNTLMv2=true and domain=yourdomain.

Try this connection string

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
    <property name="driverClassName" value="net.sourceforge.jtds.jdbc.Driver"/>
    <property name="url" value="jdbc:jtds:sqlserver://MS_SERVER/ms_db;USENTLMV2=true;domain=myDomain"/>
    <property name="username" value="myUser"/>
    <property name="password" value="myPassword"/>
</bean>

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.