第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

憑據(jù)錯(cuò)誤的 POST 請(qǐng)求返回 405 而不是 401

憑據(jù)錯(cuò)誤的 POST 請(qǐng)求返回 405 而不是 401

大話西游666 2023-06-14 14:01:52
我正在嘗試在由 Spring Security 保護(hù)的 Spring 中創(chuàng)建新的 POST 端點(diǎn)。端點(diǎn)正在工作。如果我提供正確的數(shù)據(jù)和憑據(jù),服務(wù)器會(huì)處理請(qǐng)求并返回 200。如果我提供的憑據(jù)不正確,我會(huì)得到 405,我預(yù)計(jì)會(huì)得到 401。我還嘗試將控制器的請(qǐng)求方法從 POST 更改為 GET,并將請(qǐng)求從 POST 更改為 GET,并且成功了!對(duì)于錯(cuò)誤的憑據(jù),a 收到 401,對(duì)于正確的憑據(jù),收到 200。這是我的配置:控制器@Controller@RequestMapping(value = "/api/v1")@Secured(UserRoles.ROLE_USER)public class ApiController {? ? @RequestMapping(value = "/test", method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)? ? @ResponseStatus(value = HttpStatus.OK)? ? @ResponseBody? ? public ResponseEntity<String> handleRequest(@RequestBody DataBody dataBody, Model model, Locale locale) {? ? ? ? try{? ? ? ? ? ? //do something? ? ? ? ? ? return new ResponseEntity<>("received", HttpStatus.OK);? ? ? ? } catch (SomeProblemException e) {? ? ? ? ? ? return new ResponseEntity<>(e.toString(), HttpStatus.BAD_REQUEST);? ? ? ? }? ? }HTTP 請(qǐng)求(郵遞員)POST /api/v1/test HTTP/1.1Host: localhost:8080Content-Type: application/jsonAuthorization: Basic bWFudGfmZjptYW50YQ==User-Agent: PostmanRuntime/7.15.2Accept: */*Host: localhost:8080{? ? "something": "data",? ? "somethingelse": "data"}HTTP 響應(yīng)(郵遞員)Status 405WWW-Authenticate: Basic realm="Spring Security Application"Allow: GET我使用 Spring Security 3.2.10-RELEASE。我嘗試啟用 Spring Security 日志,但我失敗了。
查看完整描述

2 回答

?
楊__羊羊

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊

問題出在這里:


@Controller

public class ErrorController {

    @RequestMapping("/error")

    public String error(@RequestParam(value = "err", required = false) Integer paramErrorCode, Locale locale,

            ModelMap model, HttpServletRequest httpRequest) {

         // Do something   

     }

我有一個(gè)控制器,它處理錯(cuò)誤屏幕,但它只支持 GET 方法。當(dāng)我將其同時(shí)更改為 GET 和 POST 時(shí),它開始工作了。


解決方案:


@Controller

public class ErrorController {

    @RequestMapping(value = "/error" method = {RequestMethod.GET, RequestMethod.POST})

    public String error(@RequestParam(value = "err", required = false) Integer paramErrorCode, Locale locale,

            ModelMap model, HttpServletRequest httpRequest) {

         // Do something   

     }

如果web.xml不確定是什么導(dǎo)致重定向


<error-page>

    <location>/error</location>

</error-page>

或 securitycontext.xml


<sec:access-denied-handler error-page="/error?err=403"/>


查看完整回答
反對(duì) 回復(fù) 2023-06-14
?
BIG陽

TA貢獻(xiàn)1859條經(jīng)驗(yàn) 獲得超6個(gè)贊

       METHOD_NOT_ALLOWED(405, "Method Not Allowed")

似乎您在測(cè)試時(shí)使用的是 GET 方法而不是 POST 方法,一旦您更改為 POSt 將獲得下一個(gè)異常是

       UNAUTHORIZED(401, "Unauthorized")


查看完整回答
反對(duì) 回復(fù) 2023-06-14
  • 2 回答
  • 0 關(guān)注
  • 155 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)