我是能夠解決的問題,但通過找到一個真正的解決重新設計的應用程序,而不是。我正在做的是啓動Angular 2應用程序,在頁面上有一些導航功能,然後可以點擊登錄,並且Spring Security發揮作用。但是,經過驗證,我無法弄清楚如何再次推出Angular 2應用程序:開始一個全新的應用程序?或者以某種方式使用已經啓動的進行開發?不確定。
我所做的只是通過始終顯示登錄頁面來啓動應用程序,並且只有在用戶登錄後纔會啓動應用程序,而Angular 2發揮作用。我想,我可以建立第二個網站來開發另一個Angular應用程序,並在那裏啓動這個鏈接,如果我們在用戶登錄之前需要某些功能的話。問題是我試圖將一個Angular應用程序拆分爲兩個,我猜。
爲了以防萬一,這裏是我的安全。XML部分(Spring Security的版本4.0.4.RELEASE
):
<http use-expressions="true">
<intercept-url pattern="/views/**" access="hasAnyRole('ROLE_CUSTOMER', 'ROLE_ADMIN')" />
<form-login
login-page="/login.jsp"
login-processing-url="/views/home"
authentication-failure-url="/login.jsp?error=failed_login"
/>
<logout logout-url="/logout" logout-success-url="/login.jsp" delete-cookies="JSESSIONID" />
<remember-me />
<headers>
<cache-control/>
<xss-protection/>
</headers>
</http>
登錄形式:
<form class="form-signin" method="POST"
action="${pageContext.servletContext.contextPath}/views/home">
<h2 class="form-signin-heading">Please sign in</h2>
<label for="inputEmail" class="sr-only">Email address</label>
<input type="text" name="username" class="form-control" placeholder="Login" required autofocus>
<label for="inputPassword" class="sr-only">Password</label>
<input type="password" name="password" class="form-control" placeholder="Password" required>
<div class="checkbox">
<label>
<input type="checkbox" value="remember-me"> Remember me
</label>
</div>
<button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
<input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}"/>
</form>
和控制器,在成功登錄後啓動角應用:
@RequestMapping("/views/home")
public String login() {
return "index";
}
然後,在推出角2應用程序我打算通過發出HTTP請求來獲取數據,並使用Springs的控制器返回我JSON
。所以,在Angular啓動之後,它本身就可以通過HTTP與服務器進行交互。註銷後,用戶將無法訪問Angular應用程序,因爲它位於受保護的文件夾下,index.jsp
爲not in the app root folder
,因此無法通過訪問/
路徑啓動。
謝謝。你知道嗎,我怎麼才能把'sonObj'分配給Angular 2模型變量? –
不幸的是,我不是一個偉大的角度專家:( –
仍然掙扎着它。這是真正的問題:從角度的應用程序代碼'JSP'標籤不工作,所以我不能檢索它,我試圖從Angular 2發出HTTP請求。 –