Creating my first JDBC Realm(Glassfish V3)

2020-06-06 04:56发布

I want to create a JDBC Realm for my web app. Since my users are very different from each other i need to have just one table, with the usernames and passwords for the realm, i decided to create a new table in my database called ROLE(oneToOne relationship with the other users table).

This is how my users domain model looks like: enter image description here

I am following this tutorial http://blog.gamatam.com/2009/11/jdbc-realm-setup-with-glassfish-v3.html but i am stuck, i dont know how to continue.

I will post the configuration i made at the glassfish server and also my file sun.resources.xml so you can correct me if i am making any mistake: enter image description here

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0  Resource Definitions //EN" "http://www.sun.com/software/appserver/dtds/sun-resources_1_3.dtd">
 <resources>
 <jdbc-resource enabled="true" jndi-name="jdbc/myDatasource" object-type="user" pool- name="Derby_grupovina_grupovinauserPool"/>
 <jdbc-connection-pool allow-non-component-callers="false" associate-with-thread="false" connection-creation-retry-attempts="0" connection-creation-retry-interval-in-seconds="10" connection-leak-reclaim="false" connection-leak-timeout-in-seconds="0" connection-validation-method="auto-commit" datasource-classname="org.apache.derby.jdbc.ClientDataSource" fail-all-connections="false" idle-timeout-in-seconds="300" is-connection-validation-required="false" is-isolation-level-guaranteed="true" lazy-connection-association="false" lazy-connection-enlistment="false" match-connections="false" max-connection-usage-count="0" max-pool-size="32" max-wait-time-in-millis="60000" name="Derby_grupovina_grupovinauserPool" non-transactional-connections="false" pool-resize-quantity="2" res-type="javax.sql.DataSource" statement-timeout-in-seconds="-1" steady-pool-size="8" validate-atmost-once-period-in-seconds="0" wrap-jdbc-objects="false">
<property name="serverName" value="localhost"/>
    <property name="PortNumber" value="1527"/>
    <property name="DatabaseName" value="grupovina"/>
    <property name="User" value="grupovinauser"/>
    <property name="Password" value="grupovina"/>
    <property name="URL" value="jdbc:derby://localhost:1527/grupovina;create=true"/>
    <property name="driverClass" value="org.apache.derby.jdbc.ClientDriver"/>
   </jdbc-connection-pool>
  </resources>

In the above comfiguration i have a few doubts, I dont really understand what should i ad at Group table and Group name Column.

The tutorial im following says that i should add security roles at the file sun-web.xml, and i wanted to do it but i dont know what to put in the configuratio. This is just what i added to that file but i think it is not correct. Where in that file should i add the role mapping and how should i configure it?

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 Servlet 2.5//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_2_5-0.dtd">
<sun-web-app error-url="">
<context-root>/GroupBuySystem</context-root>
<class-loader delegate="true"/>
<jsp-config>
<property name="keepgenerated" value="true">
  <description>Keep a copy of the generated servlet class java code.</description>
</property>
</jsp-config>    
<security-role-mapping>
<role-name> </role-name>
<group-name> </group-name>
</security-role-mapping>
</sun-web-app>

The guy of the tutorial said he had not need for a web.xml, but i do need that file. What should i add my web.xml?

This is my first jdbc realm, i am very confused :)

1条回答
SAY GOODBYE
2楼-- · 2020-06-06 05:29

I assume (from your previous question) that you don't have a group table. In fact you don't necessarily need one. JDBCRealm works with only a user table containing a group column as well.

In your Glassfish admin console change the following:

Group Table: Role

Group Name Column: userType

Since you used different typings (letter cases) for the word "role", make sure that the configuration values for your realm are exactly the same as in the table.

查看更多
登录 后发表回答