<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 閱讀(374) 評論(0)  編輯  收藏 所屬分類: Spring
    主站蜘蛛池模板: 亚洲美女aⅴ久久久91| 亚洲国产精品久久久久婷婷软件| 亚洲精品在线免费观看视频| 两个人的视频www免费| 亚洲伊人久久成综合人影院| 99久久久国产精品免费牛牛四川| 亚洲色欲久久久综合网| 爽爽爽爽爽爽爽成人免费观看| 亚洲乱码国产一区三区| 久久精品视频免费看| 亚洲另类激情综合偷自拍| 人妻无码一区二区三区免费| 亚洲黄色免费观看| 在线观看的免费网站| 亚洲av永久中文无码精品| 亚洲人成电影在线播放| 女人隐私秘视频黄www免费| 亚洲一区综合在线播放| 18勿入网站免费永久| 亚洲日韩精品无码专区| 亚洲v国产v天堂a无码久久| sihu国产精品永久免费| 久久精品国产亚洲| 国产成人福利免费视频| 在线播放亚洲精品| 亚洲成AV人片在线观看ww| 全免费毛片在线播放| 国产91成人精品亚洲精品| 亚洲国产精品国自产拍AV| 99在线视频免费观看视频 | 亚洲AV乱码久久精品蜜桃| 亚洲国产精品免费在线观看| 亚洲综合一区无码精品| 国产亚洲精aa成人网站| 无码囯产精品一区二区免费| 精品亚洲456在线播放| 久久99亚洲综合精品首页| 99在线精品免费视频九九视| 特级毛片全部免费播放a一级 | 亚洲熟妇无码一区二区三区导航| 亚洲精品视频在线观看你懂的|