Advertisement
Guest User

Untitled

a guest
Dec 19th, 2018
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 17.86 KB | None | 0 0
  1. <?xml version="1.0" encoding="UTF-8"?>
  2.  
  3. <!-- The core configuration file for the framework is the default (struts.xml) file
  4. and should reside on the classpath of the webapp (generally /WEB-INF/classes). -->
  5.  
  6. <!DOCTYPE struts PUBLIC
  7. "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  8. "http://struts.apache.org/dtds/struts-2.0.dtd">
  9.  
  10. <struts>
  11.  
  12. <!-- devMode equals debug information and reload everything for every request -->
  13. <constant name="struts.devMode" value="true" />
  14. <constant name="struts.ui.theme" value="simple" />
  15. <constant name="struts.action.excludePattern" value="/ws/.*"/>
  16.  
  17. <package name="webserver" extends="struts-default">
  18.  
  19. <interceptors>
  20. <interceptor class="webserver.interceptor.LoginInterceptor"
  21. name="loginInterceptor"/>
  22. <interceptor-stack name="loginStack">
  23. <interceptor-ref name="loginInterceptor" />
  24. <interceptor-ref name="defaultStack" />
  25. </interceptor-stack>
  26. </interceptors>
  27.  
  28. <default-action-ref name="index" />
  29.  
  30. <global-results>
  31. <result name="error">/error.jsp</result>
  32. </global-results>
  33.  
  34. <!-- all exceptions not caught by the application will lead to error.jsp -->
  35. <global-exception-mappings>
  36. <exception-mapping exception="java.lang.Exception" result="error" />
  37. </global-exception-mappings>
  38.  
  39. <!-- 'login' action leads to the view provided by index.jsp -->
  40. <action name="index">
  41. <result>login/index.jsp</result>
  42. </action>
  43.  
  44. <action name="menu">
  45. <result>menu.jsp</result>
  46. <interceptor-ref name="loginStack"></interceptor-ref>
  47. <result name = "interceptor">/login/index.jsp</result>
  48. </action>
  49.  
  50. <!-- 'webserver' action calls 'execute' in 'PrimesAction', followed by the view in 'webserver.jsp' -->
  51. <action name = "login" class="webserver.action.LoginAction" method="execute">
  52. <result name="success"> /menu.jsp</result>
  53. <result name = "login">/login/index.jsp</result>
  54. </action>
  55.  
  56. <action name="sign">
  57. <result>login/signup.jsp</result>
  58. </action>
  59.  
  60. <action name = "signup" class="webserver.action.SignupAction" method="execute">
  61. <result name="success" type="redirectAction">menu.jsp</result>
  62. <result name = "login">/login/index.jsp</result>
  63. </action>
  64.  
  65. <!-- 2) Gerir artistas -->
  66. <action name="inputInsertArtist">
  67. <result>/artist/inputInsertArtist.jsp</result>
  68. <interceptor-ref name="loginStack"></interceptor-ref>
  69. <result name = "interceptor">/login/index.jsp</result>
  70. </action>
  71.  
  72. <action name="insertArtist" class="webserver.action.ArtistAction" method="execute">
  73. <result name="success">/artist/insertArtist.jsp</result>
  74. <interceptor-ref name="loginStack"></interceptor-ref>
  75. <result name = "interceptor">/login/index.jsp</result>
  76. </action>
  77.  
  78. <action name="inputChangeArtist">
  79. <result>/artist/inputChangeArtist.jsp</result>
  80. <interceptor-ref name="loginStack"></interceptor-ref>
  81. <result name = "interceptor">/login/index.jsp</result>
  82. </action>
  83.  
  84. <action name="changeArtist" class="webserver.action.ArtistAction" method="execute">
  85. <result name="success">/artist/changeArtist.jsp</result>
  86. <interceptor-ref name="loginStack"></interceptor-ref>
  87. <result name = "interceptor">/login/index.jsp</result>
  88. </action>
  89.  
  90. <action name="inputRemoveArtist">
  91. <result>/artist/inputRemoveArtist.jsp</result>
  92. <interceptor-ref name="loginStack"></interceptor-ref>
  93. <result name = "interceptor">/login/index.jsp</result>
  94. </action>
  95.  
  96. <action name="removeArtist" class="webserver.action.ArtistAction" method="execute">
  97. <result name="success">/artist/removeArtist.jsp</result>
  98. <interceptor-ref name="loginStack"></interceptor-ref>
  99. <result name = "interceptor">/login/index.jsp</result>
  100. </action>
  101.  
  102.  
  103.  
  104. <!-- 2) Gerir albuns -->
  105. <action name="inputInsertAlbum">
  106. <result>/album/inputInsertAlbum.jsp</result>
  107. <interceptor-ref name="loginStack"></interceptor-ref>
  108. <result name = "interceptor">/login/index.jsp</result>
  109. </action>
  110.  
  111. <action name="insertAlbum" class="webserver.action.AlbumAction" method="execute">
  112. <result name="success">/album/insertAlbum.jsp</result>
  113. <interceptor-ref name="loginStack"></interceptor-ref>
  114. <result name = "interceptor">/login/index.jsp</result>
  115. </action>
  116.  
  117. <action name="inputChangeAlbum">
  118. <result>/album/inputChangeAlbum.jsp</result>
  119. <interceptor-ref name="loginStack"></interceptor-ref>
  120. <result name = "interceptor">/login/index.jsp</result>
  121. </action>
  122.  
  123. <action name="changeAlbum" class="webserver.action.AlbumAction" method="execute">
  124. <result name="success">/album/changeAlbum.jsp</result>
  125. <interceptor-ref name="loginStack"></interceptor-ref>
  126. <result name = "interceptor">/login/index.jsp</result>
  127. </action>
  128.  
  129. <action name="inputRemoveAlbum">
  130. <result>/album/inputRemoveAlbum.jsp</result>
  131. <interceptor-ref name="loginStack"></interceptor-ref>
  132. <result name = "interceptor">/login/index.jsp</result>
  133. </action>
  134.  
  135. <action name="removeAlbum" class="webserver.action.AlbumAction" method="execute">
  136. <result name="success">/album/removeAlbum.jsp</result>
  137. <interceptor-ref name="loginStack"></interceptor-ref>
  138. <result name = "interceptor">/login/index.jsp</result>
  139. </action>
  140.  
  141. <!-- 2) Gerir musicas -->
  142. <action name="inputInsertMusic">
  143. <result>/music/inputInsertMusic.jsp</result>
  144. <interceptor-ref name="loginStack"></interceptor-ref>
  145. <result name = "interceptor">/login/index.jsp</result>
  146. </action>
  147.  
  148. <action name="insertMusic" class="webserver.action.MusicAction" method="execute">
  149. <result>/music/insertMusic.jsp</result>
  150. <interceptor-ref name="loginStack"></interceptor-ref>
  151. <result name = "interceptor">/login/index.jsp</result>
  152. </action>
  153.  
  154. <action name="inputChangeMusic">
  155. <result>/music/inputChangeMusic.jsp</result>
  156. <interceptor-ref name="loginStack"></interceptor-ref>
  157. <result name = "interceptor">/login/index.jsp</result>
  158. </action>
  159.  
  160. <action name="changeMusic" class="webserver.action.MusicAction" method="execute">
  161. <result>/music/changeMusic.jsp</result>
  162. <interceptor-ref name="loginStack"></interceptor-ref>
  163. <result name = "interceptor">/login/index.jsp</result>
  164. </action>
  165.  
  166. <action name="inputRemoveMusic">
  167. <result>/music/inputRemoveMusic.jsp</result>
  168. <interceptor-ref name="loginStack"></interceptor-ref>
  169. <result name = "interceptor">/login/index.jsp</result>
  170. </action>
  171.  
  172. <action name="removeMusic" class="webserver.action.MusicAction" method="execute">
  173. <result>/music/removeMusic.jsp</result>
  174. <interceptor-ref name="loginStack"></interceptor-ref>
  175. <result name = "interceptor">/login/index.jsp</result>
  176. </action>
  177.  
  178. <!-- 4) Artist Details -->
  179. <action name="inputArtistDetails">
  180. <result>/artist/inputArtistDetails.jsp</result>
  181. <interceptor-ref name="loginStack"></interceptor-ref>
  182. <result name = "interceptor">/login/index.jsp</result>
  183. </action>
  184.  
  185. <action name="artistDetails" class="webserver.action.ArtistAction" method="execute">
  186. <result name = "success">/artist/artistDetails.jsp</result>
  187. <interceptor-ref name="loginStack"></interceptor-ref>
  188. <result name = "interceptor">/login/index.jsp</result>
  189. </action>
  190.  
  191. <!-- 4) Album Details -->
  192. <action name="inputAlbumDetails">
  193. <result>/album/inputAlbumDetails.jsp</result>
  194. <interceptor-ref name="loginStack"></interceptor-ref>
  195. <result name = "interceptor">/login/index.jsp</result>
  196. </action>
  197.  
  198. <action name="albumDetails" class="webserver.action.AlbumAction" method="execute">
  199. <result name = "success">/album/albumDetails.jsp</result>
  200. <interceptor-ref name="loginStack"></interceptor-ref>
  201. <result name = "interceptor">/login/index.jsp</result>
  202. </action>
  203.  
  204.  
  205. <!-- 6) Promote User -->
  206. <action name="inputPromoteUser">
  207. <result>/user/inputPromoteUser.jsp</result>
  208. <interceptor-ref name="loginStack"></interceptor-ref>
  209. <result name = "interceptor">/login/index.jsp</result>
  210. </action>
  211.  
  212. <action name="promoteUser" class="webserver.action.PromoteUserAction" method="execute">
  213. <result name = "success">success.html</result>
  214. <result name = "error">failure.html</result>
  215. <interceptor-ref name="loginStack"></interceptor-ref>
  216. <result name = "interceptor">/login/index.jsp</result>
  217. </action>
  218.  
  219. <action name="notification" class="webserver.action.NotificationAction" method="execute">
  220. <result name ="success">/test.jsp</result>
  221. <interceptor-ref name="loginStack"></interceptor-ref>
  222. <result name = "interceptor">/login/index.jsp</result>
  223. </action>
  224.  
  225.  
  226. <!-- JOAO -->
  227.  
  228. <action name="indexAlbumReview">
  229. <result>/album/indexReview.jsp</result>
  230. <interceptor-ref name="loginStack"></interceptor-ref>
  231. <result name = "interceptor">/login/index.jsp</result>
  232. </action>
  233.  
  234. <action name="reviewAlbum" class="webserver.action.AlbumAction" method="execute">
  235. <result name = "success">/album/albumReview.jsp</result>
  236. <interceptor-ref name="loginStack"></interceptor-ref>
  237. <result name = "interceptor">/login/index.jsp</result>
  238. </action>
  239.  
  240. <action name="indexSearchByAlbum">
  241. <result>/music/indexSearchByAlbum.jsp</result>
  242. <interceptor-ref name="loginStack"></interceptor-ref>
  243. <result name = "interceptor">/login/index.jsp</result>
  244. </action>
  245.  
  246. <action name="indexSearchByGenre">
  247. <result>/music/indexSearchByGenre.jsp</result>
  248. <interceptor-ref name="loginStack"></interceptor-ref>
  249. <result name = "interceptor">/login/index.jsp</result>
  250. </action>
  251.  
  252. <action name="indexSearchByArtist">
  253. <result>/music/indexSearchByArtist.jsp</result>
  254. <interceptor-ref name="loginStack"></interceptor-ref>
  255. <result name = "interceptor">/login/index.jsp</result>
  256. </action>
  257.  
  258.  
  259.  
  260. <action name="searchByAlbum" class="webserver.action.SearchMusicAction" method="executeAlbum">
  261. <result name = "success">/music/searchByAlbum.jsp</result>
  262. <result name = "login">notfound.jsp</result>
  263. <interceptor-ref name="loginStack"></interceptor-ref>
  264. <result name = "interceptor">/login/index.jsp</result>
  265. </action>
  266.  
  267. <action name="searchByGenre" class="webserver.action.SearchMusicAction" method="executeGenre">
  268. <result name = "success">/music/searchByGenre.jsp</result>
  269. <result name = "login">notfound.jsp</result>
  270. <interceptor-ref name="loginStack"></interceptor-ref>
  271. <result name = "interceptor">/login/index.jsp</result>
  272. </action>
  273.  
  274. <action name="searchByArtist" class="webserver.action.SearchMusicAction" method="executeArtist">
  275. <result name = "success">/music/searchByArtist.jsp</result>
  276. <result name = "login">notfound.jsp</result>
  277. <interceptor-ref name="loginStack"></interceptor-ref>
  278. <result name = "interceptor">/login/index.jsp</result>
  279. </action>
  280.  
  281. <action name="moreDetails" class="webserver.action.SearchMusicAction" method="execute">
  282. <result name = "success" >/music/moreDetails.jsp</result>
  283. <interceptor-ref name="loginStack"></interceptor-ref>
  284. <result name = "interceptor">/login/index.jsp</result>
  285. </action>
  286.  
  287.  
  288.  
  289. <action name = "ConfirmDropboxAction" class="webserver.action.ConfirmDropboxAction" method="execute">
  290. <result name="success"> /menu.jsp</result>
  291. <interceptor-ref name="loginStack"></interceptor-ref>
  292. <result name = "interceptor">/login/index.jsp</result>
  293. </action>
  294.  
  295. <action name = "linkWithDropbox" class="webserver.action.LinkWithDropboxAction" method="execute">
  296. <result name="success"> /redirect.html</result>
  297. <interceptor-ref name="loginStack"></interceptor-ref>
  298. <result name = "interceptor">/login/index.jsp</result>
  299.  
  300. </action>
  301.  
  302. <action name = "linkLoginWithDropbox" class="webserver.action.LinkLoginWithDropboxAction" method="execute">
  303. <result name="success"> /redirectLogin.html</result>
  304. <interceptor-ref name="loginStack"></interceptor-ref>
  305. <result name = "interceptor">/login/index.jsp</result>
  306. </action>
  307.  
  308. <action name="LoginWithDropboxAction" class="webserver.action.LoginWithDropboxAction" method="execute">
  309. <result name="success"> /menu.jsp</result>
  310. <result name="login">/login/index.jsp</result>
  311. <interceptor-ref name="loginStack"></interceptor-ref>
  312. <result name = "interceptor">/login/index.jsp</result>
  313. </action>
  314.  
  315.  
  316. <action name="dropboxMenu" class="webserver.action.DropboxMenuAction" method="execute">
  317. <result name = "success"> /dropbox/dropboxMenu.jsp</result>
  318. <interceptor-ref name="loginStack"></interceptor-ref>
  319. <result name = "interceptor">/login/index.jsp</result>
  320. </action>
  321.  
  322. <action name="associateFileToMusic" class="webserver.action.AssociateFileToMusicAction" method="execute">
  323. <result name="success"> /dropbox/associateMusics.jsp</result>
  324. <interceptor-ref name="loginStack"></interceptor-ref>
  325. <result name = "interceptor">/login/index.jsp</result>
  326. </action>
  327.  
  328. <action name="associationOfMusicToFile" class="webserver.action.AssociateFileToMusicAction" method="executeAssociatonFile">
  329. <result name="success"> /dropbox/dropboxMenu.jsp</result>
  330. <interceptor-ref name="loginStack"></interceptor-ref>
  331. <result name = "interceptor">/login/index.jsp</result>
  332. </action>
  333.  
  334. <action name="streamMusic" class="webserver.action.StreamMusicAction" method="execute">
  335. <result name="success"> /dropbox/play.jsp</result>
  336. <result name="error"> /dropbox/dropboxMenu.jsp</result>
  337. <interceptor-ref name="loginStack"></interceptor-ref>
  338. <result name = "interceptor">/login/index.jsp</result>
  339. </action>
  340.  
  341. <action name="playMusic" class="webserver.action.StreamMusicAction" method="executeMenu">
  342. <result name = "success"> /dropbox/inputPlayMusic.jsp </result>
  343. <interceptor-ref name="loginStack"></interceptor-ref>
  344. <result name = "interceptor">/login/index.jsp</result>
  345. </action>
  346.  
  347. </package>
  348.  
  349. </struts>
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380. /**
  381. * Raul Barbosa 2014-11-07
  382. */
  383. package webserver.interceptor;
  384.  
  385. import java.util.Map;
  386.  
  387. import com.opensymphony.xwork2.Action;
  388. import com.opensymphony.xwork2.ActionInvocation;
  389. import com.opensymphony.xwork2.interceptor.Interceptor;
  390.  
  391. public class LoginInterceptor implements Interceptor {
  392. private static final long serialVersionUID = 189237412378L;
  393.  
  394. @Override
  395. public String intercept(ActionInvocation invocation) throws Exception {
  396. Map<String, Object> session = invocation.getInvocationContext().getSession();
  397.  
  398. // this method intercepts the execution of the action and we get access
  399. // to the session, to the action, and to the context of this invocation
  400. System.out.println(session.get("loggedIn"));
  401. if (session.get("loggedIn") == null) {
  402. return "interceptor";
  403. }
  404. return invocation.invoke();
  405.  
  406. }
  407.  
  408. @Override
  409. public void init() { }
  410.  
  411. @Override
  412. public void destroy() { }
  413. }
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427. /**
  428. * Raul Barbosa 2014-11-07
  429. */
  430. package webserver.action;
  431.  
  432. import com.opensymphony.xwork2.ActionSupport;
  433. import org.apache.struts2.interceptor.SessionAware;
  434.  
  435. import rmiserver.User;
  436. import webserver.model.UserBean;
  437.  
  438. import java.rmi.RemoteException;
  439. import java.util.Map;
  440.  
  441.  
  442. public class LoginAction extends ActionSupport implements SessionAware {
  443. private static final long serialVersionUID = 4L;
  444. private Map<String, Object> session;
  445. private String username = null, password = null;
  446. private UserBean userBean;
  447.  
  448. @Override
  449. public String execute() throws RemoteException {
  450. // any username is accepted without confirmation (should check using RMI)
  451. System.out.println("execute");
  452.  
  453. User result = this.getUserBean().login();
  454.  
  455. if (!result.getName().equals("null") && !result.getPassword().equals("null")) {
  456. session.put("username", getUserBean().getUsername());
  457. session.put("loggedIn", getUserBean().getUsername());
  458. return SUCCESS;
  459. }
  460. else if (result.getName().equals("null") && result.getPassword().equals("null"))
  461. return LOGIN;
  462.  
  463. return SUCCESS;
  464. }
  465.  
  466.  
  467. public void setUsername(String username) {
  468. this.username = username; // will you sanitize this input? maybe use a prepared statement?
  469. }
  470.  
  471. public void setPassword(String password) {
  472. this.password = password; // what about this input?
  473. }
  474.  
  475. public UserBean getUserBean() {
  476.  
  477. if(!session.containsKey("userBean"))
  478. this.setUserBean(new UserBean());
  479. return (UserBean) session.get("userBean");
  480. }
  481.  
  482.  
  483. public void setUserBean(UserBean UserBean) {
  484. this.session.put("userBean", UserBean);
  485. }
  486.  
  487. @Override
  488. public void setSession(Map<String, Object> session) {
  489. this.session = session;
  490. }
  491.  
  492. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement