<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
    主站蜘蛛池模板: 一级毛片免费播放试看60分钟| 亚洲欧美成人一区二区三区| 亚洲黄片手机免费观看| 永久免费毛片在线播放| 亚洲国产av高清无码| 国产免费看JIZZ视频| 亚洲人成网站色在线观看| 91香蕉视频免费| 久久亚洲精品国产亚洲老地址 | 久久国产精品免费一区二区三区| 免费又黄又爽又猛的毛片| 污污的视频在线免费观看| 国产精品亚洲mnbav网站| 国产午夜精品理论片免费观看| 国产亚洲精久久久久久无码| 青柠影视在线观看免费| 少妇中文字幕乱码亚洲影视| 91精品全国免费观看含羞草| 自拍偷区亚洲国内自拍| 免费高清在线爱做视频| caoporn国产精品免费| 国产成人无码综合亚洲日韩| 日本免费一区二区久久人人澡| 亚洲第一二三四区| 妞干网免费观看视频| 阿v视频免费在线观看| 亚洲午夜久久久久久噜噜噜| 日韩精品极品视频在线观看免费| 中文字幕亚洲综合小综合在线| 国产大片线上免费看| 在线观看免费播放av片| 亚洲人成在线播放| 免费a级毛片18以上观看精品| 九九免费精品视频在这里| 亚洲成人精品久久| 永久久久免费浮力影院| 久久99久久成人免费播放| 亚洲人成在线播放| 亚洲精品一品区二品区三品区| 人成午夜免费视频在线观看| 一区二区三区在线免费观看视频|