<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sealyu

    --- 博客已遷移至: http://www.sealyu.com/blog

      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
      618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks

    After given a demo to the customer, they wished to modify the specification so that after login, the page always shows the name of the user logged in. Also they would prefer if the navigation was customized to the type of user that has logged in. e.g. standard users with ROLE_USER should not see the link to the admin page on the common navigation.

    The specification has been updated as follows:

    User Story 7: Create common navigation that all secure pages will contain.
    Note: There will be links to home, admin pages and a logout link.
    Note: only admin users should see the admin link on the common navigation.

    User Story 10: A common information bar should exist on all secure pages that displays whether the user is logged in or not.

    The solution

    To customize the common navigation per user role type and display the logged in username, we are going to use spring security’s tag libs, specifically the authorize and authentication tags.

    Add spring security taglibs as dependency

    Add spring-security-taglibs-2.0.4.jar to our WAR projects lib folder.

    The implementation

    The first step is to update our acceptance tests that verify behavior on the common navigation:

    @Test
    public void shouldNotBeAbleToSeeAdminLinkOnCommonNavigationWhenNotLoggedInAsStandardUser() {

    driver.get("http://localhost:8080/springsecuritywebapp/home.htm");
    login(driver);

    // verify
    assertThat(driver.getTitle(),
    is("Home: Spring Security Web Application"));

    try {
    driver.findElement(By.linkText("Admin"));
    fail("should not be able to see a link to admin page when logged in as standard user");
    } catch (final NoSuchElementException e) {
    assertNotNull(e);
    }

    }

    @Test
    public void shouldBeAbleToViewUsernameOfUserOnAdminPageWhenSuccessfullyAuthenticated() {
    loginAsUser(driver, withAdminRole());

    // state verification
    assertThat(driver.getTitle(),
    is("Admin: Spring Security Web Application"));
    assertThat(driver.findElement(By.id("loginstatus")).getText(),
    containsString("Logged in as: admin"));

    }

    @Test
    public void shouldBeAbleToViewUsernameOfUserOnHomePageWhenSuccessfullyAuthenticated() {
    login(driver);

    // state verification
    assertThat(driver.getTitle(),
    is("Home: Spring Security Web Application"));
    assertThat(driver.findElement(By.id("loginstatus")).getText(),
    containsString("Logged in as: username"));

    }

    Next step is to create a userinfobar.jsp file that will be included in each secure page:

    <span id="loginstatus">Logged in as: <security:authentication property="principal.username"/>
    </span>

    <br />

    Things to note:

    1. we are using the authentication tag from spring security’s tag libs (which will be included at top of each jsp that includes this file)

    Next this should be included in the home.jsp and admin.jsp pages. Here is home.jsp:

    <%@ page session="true"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
    <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
    <%@ taglib prefix='security' uri='http://www.springframework.org/security/tags' %>
    <html>

    <head>
    <title>Home: Spring Security Web Application</title>

    </head>

    <body>

    <%@ include file="/WEB-INF/jsp/navigation.jsp" %>
    <%@ include file="/WEB-INF/jsp/userinfobar.jsp"%>

    home page: only logged in users should see this page.

    </body>

    </html>

    Things to note:

    1. The spring security tablib is included at top of page
    2. The userinfobar.jsp file is included so will display username of logged in users.

    Build, deploy and run all acceptance tests.

    Getting the code

    The code for this part is tagged and available for viewing online at: http://code.google.com/p/spring-security-series/source/browse/#svn/tags/SpringSecuritySeriesWAR-Part8

    SVN Url: https://spring-security-series.googlecode.com/svn/tags/SpringSecuritySeriesWAR-Part8

    posted on 2009-12-24 17:01 seal 閱讀(382) 評論(0)  編輯  收藏 所屬分類: Spring
    主站蜘蛛池模板: 国产在亚洲线视频观看| 亚洲一区欧洲一区| 亚洲色自偷自拍另类小说| 亚洲中文字幕久久精品无码喷水 | 亚洲乱码一区二区三区在线观看 | 国产成人不卡亚洲精品91 | 亚洲一区二区精品视频| 国产亚洲人成网站观看| 丝袜捆绑调教视频免费区| 久久99热精品免费观看动漫| 99在线精品免费视频九九视| 好大好硬好爽免费视频| 亚洲人成网站观看在线播放| 亚洲精品无码久久久久久久 | 三年片在线观看免费观看大全中国| jizz中国免费| 国产在线观看免费观看不卡 | 亚洲国产一级在线观看| 一区二区视频免费观看| 午夜爱爱免费视频| 日本系列1页亚洲系列| 91人人区免费区人人| 免费大黄网站在线观| 亚洲成在人线电影天堂色| 一级毛片免费视频网站| 亚洲日韩精品射精日| 99爱视频99爱在线观看免费| 国产L精品国产亚洲区久久| 日韩电影免费在线观看网站| 四虎国产精品免费视| 亚洲人成免费网站| 午夜精品一区二区三区免费视频| 亚洲精品福利网站| 国产免费拔擦拔擦8x| a毛片免费在线观看| 亚洲国产精品日韩| 亚洲人成电影网站免费| 曰批全过程免费视频网址| 亚洲国产一区二区三区青草影视| 美女视频黄频a免费观看| 永久在线毛片免费观看|