![](/img/trans.png)
[英]Unsupported Media Type error in browser console when sending json using angularjs to spring controller
[英]Issue when using angularJS with Spring security and sending JSON request
我正在使用Spring Security進行身份驗證和授權。 為了發送請求,我使用的是Angular JS http.post請求。 示例“ home.jsp”代碼為:
<form role="form">
<div class="form-group">
<label for="username">Username:</label> <input type="text"
class="form-control" id="username" name="username" ng-model="userinfo.username"/>
</div>
<div class="form-group">
<label for="password">Password:</label> <input type="password"
class="form-control" id="password" name="password" ng-model="userinfo.password"/>
</div>
<button type="submit" class="btn btn-primary" ng-click='login()'>Submit</button>
我的UserInfo類與模型綁定:
UserInfo.java
private String username;
private String password;
// Generated getters & setters
示例“ home.js”是:我正在做以下事情,即我正在將userInfo轉換為JSON字符串。
$scope.login = function() {
$http.post('login', angular.toJson(userInfo)
.success(function(data) {
// Some response handling
})};
登錄名到達服務器並執行所有內置的spring安全過濾器,但是當我調試'UserandPasswordAuthenticationFilter'時,它向我顯示request.getParameter('username')且密碼為NULL。 我正在發送類型為UserInfo類的JSON字符串。 誰能指導我,在執行“ UserandPasswordAuthenticationFilter”之前,添加一個“解析” JSON字符串並轉換為UserInfo對象的新過濾器,並在servlet請求參數中設置用戶名和密碼,同樣,另一個過濾器將對象轉換為JSON同時發送回響應?
請幫助並提出最佳解決方案。
謝謝。
您面臨兩個選擇。 只需發布Spring對您的期望(即簡單的j_username和j_password參數),或者配置一組不同的過濾器和auth提供程序,它們將構造並期望使用不同的令牌(不是現在由UsernamePasswordAuthenticationFilter創建的UsernamePasswordToken)。 您的身份驗證提供程序應該期望新的令牌類型,並在其supports(Class<?> clazz)
方法中進行檢查。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.