Всем привет! Очень нужна помощь. Делаю обычное web приложение с использованием GWT. Проблема вот в чем. Аутентификацию делаю стандартными средствами сервера Tomcat, настраиваю JDBCRealm к Oracle в server.xml, создаю таблицы в БД, далее настраиваю web.xml, указываю что это Form аутентификация. В общем все работает. Мне нужно сделать разделение интерфейса, по ролям. То есть определяю текущую роль этого пользователя и запускается нужный класс. Обработку можно сделать на сервере или лучше сразу на клиенте. Если это был бы обычный сервелет то вызвал бы методы getUserPrincipal, getCallerPrincipal, isUserInRole(), isCallerInRole(). В данном случае это не актуально. Как можно сделать разделение по ролям..? Привожу код. Стандартный MainEntryPoint.java в пакете клиента
| Код | package org.yournamehere.client;
import com.google.gwt.core.client.EntryPoint; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.RootPanel; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler;
/** * Main entry point. * * @author 777 */ public class MainEntryPoint {
public void onModuleLoad() { final Label label = new Label("Hello, GWT!!!"); final Button button = new Button("Click me"); button.addClickHandler(new ClickHandler() { public void onClick(ClickEvent event) { label.setVisible(!label.isVisible()); } });
RootPanel.get().add(button); RootPanel.get().add(label); } }
|
server.xml (привожу только то что изменил)
| Код | <Realm className="org.apache.catalina.realm.JDBCRealm" connectionName="system" connectionPassword="777" connectionURL="jdbc:oracle:thin:@777-3c828e8522a:1521:XE" driverName="oracle.jdbc.driver.OracleDriver" roleNameCol="role_name" userCredCol="user_pass" userNameCol="user_name" userRoleTable="user_roles" userTable="users"/>
|
web.xml
| Код | <welcome-file-list> <welcome-file>welcomeGWT.html</welcome-file> </welcome-file-list> <security-constraint> <web-resource-collection> <web-resource-name>WebApplication1</web-resource-name> <url-pattern>/welcomeGWT.html</url-pattern> </web-resource-collection> <auth-constraint> <role-name>Role1</role-name> </auth-constraint> </security-constraint> <security-constraint> <web-resource-collection> <web-resource-name>WebApplication1</web-resource-name> <url-pattern>/welcomeGWT.html</url-pattern> </web-resource-collection> <auth-constraint> <role-name>Role2</role-name> </auth-constraint> </security-constraint> <login-config> <auth-method>FORM</auth-method> <form-login-config> <form-login-page>/LoginForm.html</form-login-page> <form-error-page>/LoginError.html</form-error-page> </form-login-config> </login-config>
|
LoginForm.html
| Код | <body> <form method="POST" action="j_security_check">
Username: <input type="text" name="j_username"><br/> <br> Password: <input type="password" name="j_password"><br/> <br />
<input type="submit" value="Login"> <input type="reset" value="Reset">
</form> </body>
|
|