nahsra / WebGoat_12_23

Other
0 stars 2 forks source link

(Sonar) Fix "`@Controller` should be replaced with `@RestController`" #14

Closed pixeebot[bot] closed 6 months ago

pixeebot[bot] commented 7 months ago

Remediation

This change fixes the following Sonar rule: "@Controller should be replaced with @RestController" (id = java:S6833)

Details

This change makes it harder for developers to make a mistake when writing REST controllers in Spring. By marking the top level type with @RestController, it is now assumed that all the methods within it will return a Java object representing the response body. Thus, there is no need to specify, for each method, the @ResponseBody annotation.

Our changes look something like this:

-   import org.springframework.stereotype.Controller;
-   import org.springframework.web.bind.annotation.ResponseBody;
+   import org.springframework.web.bind.annotation.RestController;
-   @Controller
+   @RestController
    public class AccountController {
      ...
-     @ResponseBody
      public AccountDetails viewAccount() {
        ...
More reading * [https://rules.sonarsource.com/java/RSPEC-6833/](https://rules.sonarsource.com/java/RSPEC-6833/)

I have additional improvements ready for this repo! If you want to see them, leave the comment:

@pixeebot next

... and I will open a new PR right away!

Powered by: pixeebot (codemod ID: sonar:java/simplify-rest-controller-annotations-s6833)

sonarcloud[bot] commented 7 months ago

Quality Gate Failed Quality Gate failed

Failed conditions
3 Security Hotspots

See analysis details on SonarCloud

pixeebot[bot] commented 6 months ago

I'm confident in this change, but I'm not a maintainer of this project. Do you see any reason not to merge it?

If this change was not helpful, or you have suggestions for improvements, please let me know!

pixeebot[bot] commented 6 months ago

Just a friendly ping to remind you about this change. If there are concerns about it, we'd love to hear about them!

pixeebot[bot] commented 6 months ago

This change may not be a priority right now, so I'll close it. If there was something I could have done better, please let me know!

You can also customize me to make sure I'm working with you in the way you want.