Mój projekt już "gada" z bazą danych. Yay, teraz zacznie się prawdziwe programowanie. ;)
Aby podłączyć bazę, na pewno będziemy potrzebować drivera MySQL i Spring JDBC. Ponieważ używam Mavena, wystarczy tylko dopisać kilka linii w pliku pom.xml i przebudować projekt:
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.39</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework/spring-jdbc --> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-jdbc</artifactId> <version>4.3.8.RELEASE</version> </dependency>
Dodajemy plik z konfiguracją bazy - db-bean.xml:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/iwilldo_db" />
<property name="username" value="root" />
<property name="password" value="asdf1" />
</bean>
<!-- If request parameter "targetUrl" is existed, then forward to this url -->
<!-- For update login form -->
<bean id="savedRequestAwareAuthenticationSuccessHandler"
class="org.springframework.security.web.authentication.SavedRequestAwareAuthenticationSuccessHandler">
<property name="targetUrlParameter" value="targetUrl" />
</bean>
</beans>
Aby Spring go "widział", musimy go jeszcze wskazać w pliku web.xml:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/spring-security.xml,
/WEB-INF/db-bean.xml
</param-value>
</context-param>
W spring-security.xml podmieniamy authentication-providera z zakodowanym na sztywno użytkownikiem i hasłem na poniższy:
<authentication-provider>
<jdbc-user-service data-source-ref="dataSource"
users-by-username-query="SELECT usr_login, usr_pass, 1 FROM users WHERE usr_login=?"
authorities-by-username-query="SELECT usr_login, 'ROLE_USER' FROM users WHERE usr_login=?" />
</authentication-provider>
Ostatnia rzecz, której potrzebujemy, to użytkownik w bazie. Ponieważ formularz rejestracji jest jeszcze w powijakach, dodałam ręcznie testowego użytkownika.
insert into users (usr_first_name, usr_last_name, usr_login, usr_pass, usr_status)
values ('test', 'test', 'test@test.qa', 'test', 'A');
commit;
To tyle na dziś. Niewiele... ale grunt, że pomalutku do przodu. :)
Brak komentarzy:
Prześlij komentarz