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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為春季計劃作業(yè)添加@PreAuthorize 角色

為春季計劃作業(yè)添加@PreAuthorize 角色

蕪湖不蕪 2022-07-14 09:31:03
在我的后端,我添加了@PreAuthorize("hasRole('ROLE_ADMIN') 以允許用戶訪問服務層中的功能?,F在我想使用我的調度作業(yè)(springframework調度)來訪問這些服務,但顯然它可以不是。我的問題是如何添加 ROLE_ADMIN 角色或為計劃作業(yè)生成用戶主體?@PreAuthorize("hasRole('ROLE_ADMIN')")JsonNode loadSMS(String additionalPath) {    .....}
查看完整描述

2 回答

?
繁星淼淼

TA貢獻1775條經驗 獲得超11個贊

要么有另一種未用@PreAuthorize調度程序調用的方法進行注釋的方法。將實現移動到這個新方法中,并改變現有loadSMS的使用這個新方法,以減少代碼重復。否則你可以在運行時添加一個角色,但我認為這不是一個好主意。



查看完整回答
反對 回復 2022-07-14
?
達令說

TA貢獻1821條經驗 獲得超6個贊

你可以試試下面的代碼


@Service

class SchedulerService {

    @Autowired

    private YourService service;


    @Scheduled(fixedRate = 600000L, initialDelay = 60000L)

    public void executeTask() throws IOException {

        RunAs.runAsAdmin(() -> {

          service.loadSMS(String additionalPath) {

        });

    }

}


public class RunAs {


    @FunctionalInterface

    public interface RunAsMethod {

        default void run() {

            try {

                runWithException();

            } catch (Exception e) {


            }

        }

        void runWithException() throws Exception;

    }


    public static void runAsAdmin(final RunAsMethod func) {

        final AnonymousAuthenticationToken token = new AnonymousAuthenticationToken("adminUser", "adminPassword",

                ImmutableList.of(new SimpleGrantedAuthority("ROLE_ADMIN")));

        final Authentication originalAuthentication = SecurityContextHolder.getContext().getAuthentication();

        SecurityContextHolder.getContext().setAuthentication(token);

        func.run();

        SecurityContextHolder.getContext().setAuthentication(originalAuthentication);

    }

}


查看完整回答
反對 回復 2022-07-14
  • 2 回答
  • 0 關注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號