Skip to content

Commit 2f6cf76

Browse files
committed
fixup! fixup! Initial version of SonarSecureCookie
1 parent 0ea6680 commit 2f6cf76

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

src/core_codemods/secure_flask_cookie.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@
99

1010

1111
class SecureCookieTransformer(LibcstResultTransformer, SecureCookieMixin):
12+
change_description = "Flask response `set_cookie` call should be called with `secure=True`, `httponly=True`, and `samesite='Lax'`."
13+
1214
def on_result_found(self, original_node, updated_node):
1315
new_args = self.replace_args(
1416
original_node, self._choose_new_args(original_node)

src/core_codemods/sonar/sonar_secure_cookie.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
from codemodder.codemods.base_codemod import ToolRule
2+
from codemodder.codemods.libcst_transformer import (
3+
LibcstResultTransformer,
4+
LibcstTransformerPipeline,
5+
)
6+
from core_codemods.secure_cookie_mixin import SecureCookieMixin
27
from core_codemods.secure_flask_cookie import SecureFlaskCookie
38
from core_codemods.sonar.api import SonarCodemod
49

@@ -15,8 +20,24 @@
1520
),
1621
]
1722

23+
24+
class SonarSecureCookieTransformer(LibcstResultTransformer, SecureCookieMixin):
25+
change_description = "Flask response `set_cookie` call should be called with `secure=True`, `httponly=True`, and `samesite='Lax'`."
26+
27+
def leave_Call(self, original_node, updated_node):
28+
# Try to match the func
29+
if self.node_is_selected(original_node.func):
30+
self.report_change(original_node)
31+
new_args = self.replace_args(
32+
original_node, self._choose_new_args(original_node)
33+
)
34+
return self.update_arg_target(updated_node, new_args)
35+
return updated_node
36+
37+
1838
SonarSecureCookie = SonarCodemod.from_core_codemod_with_multiple_rules(
1939
name="secure-cookie",
2040
other=SecureFlaskCookie,
2141
rules=rules,
42+
transformer=LibcstTransformerPipeline(SonarSecureCookieTransformer),
2243
)

0 commit comments

Comments
 (0)