<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 閱讀(373) 評論(0)  編輯  收藏 所屬分類: Spring
    主站蜘蛛池模板: 亚洲福利电影一区二区?| 亚洲第一中文字幕| 亚洲gay片在线gv网站| 最近中文字幕mv免费高清在线| 亚洲中文字幕久久精品无码喷水| 污网站免费在线观看| 国产一区二区三区在线免费| 亚洲AV无码XXX麻豆艾秋| 好男人看视频免费2019中文| 亚洲欧美中文日韩视频| 国产真实伦在线视频免费观看| 亚洲人成色99999在线观看| 天天摸夜夜摸成人免费视频| 亚洲色少妇熟女11p| 国产精品久免费的黄网站| 日韩在线观看视频免费| 亚洲日本va中文字幕久久| 亚洲免费视频网站| 亚洲va精品中文字幕| 成人毛片免费观看| 男女男精品网站免费观看| 一本久久a久久精品亚洲| 99热在线免费播放| 亚洲免费观看在线视频| 国产大片91精品免费观看男同| 2022免费国产精品福利在线| 亚洲国产成人精品无码区在线观看| 97在线视频免费公开观看| 国产精品亚洲精品| 亚洲精品美女久久久久99小说| 两个人看的www免费视频中文| 日产亚洲一区二区三区| 在线观看视频免费国语| 久久久WWW成人免费精品| 亚洲色大成网站www永久| 国产精品成人无码免费| 国产精品免费AV片在线观看| 亚洲国产视频久久| 丝袜熟女国偷自产中文字幕亚洲| 3d动漫精品啪啪一区二区免费| 国产成人人综合亚洲欧美丁香花 |