Chintana Wilamuna - WSO2 Inc.
Press → key to advance.We'll create a database for our app to use
Now we'll create a DB user that'll do CRUD operations
create table message (
id integer auto_increment primary key,
user varchar(50),
message varchar(140)
);
Let's create a data service to access our database
<query id="getMessagesByUserQuery" useConfig="JwitterDataSource">
<sql>select * from jwitter where user = :user</sql>
<result element="messages" rowName="m">
<element name="id" column="id" xsdType="xs:integer" />
<element name="user" column="user" xsdType="xs:string" />
<element name="message" column="message" xsdType="xs:string" />
</result>
<param name="user" sqlType="STRING" />
</query>
<operation name="getMessagesByUser">
<call-query href="getMessagesByUserQuery">
<with-param name="user" query-param="user" />
</call-query>
</operation>
If you feel lazy just copy and paste the above configuration to your data service configuration. Keep the other configuration entries.
Let's now create a webapp that'll talk to our data service
wsdl2java -u -uw -uri http://data.stratoslive.com/services/t/engwar.com/JwitterDS?wsdl
Configure deployment descriptor for form based auth
<login-config>
<auth-method>FORM</auth-method>
<realm-name>Jwitter Auth</realm-name>
<form-login-config>
<form-login-page>/profile.jsp</form-login-page>
<form-error-page>/error.jsp</form-error-page>
</form-login-config>
</login-config>
<security-role>
<role-name>everyone</role-name>
</security-role>
<security-role>
<role-name>admin</role-name>
</security-role>
<security-constraint>
<display-name>Jwitter Security Constraint</display-name>
<web-resource-collection>
<web-resource-name>Protected Area</web-resource-name>
<url-pattern>/profile.jsp</url-pattern>
</web-resource-collection>
<auth-constraint>
<role-name>admin</role-name>
</auth-constraint>
</security-constraint>