搜尋

搜尋結果

美國國鐵東北線買一送一優惠碼!
激安優惠
OHChance 旅遊誌・2019-06-25

之後會去美東玩的版友可以看看,美國國鐵 Amtrak 推出東北路線買一送一優惠碼 ldquo;C222Prime;,只要是6月29日起星期六的班次就可以使用(官方文宣是寫到9月7日的車次,但測試過一路到明年的車次都用得),各路線2人同行單程總價如下: 紐約-波士頓:USD83紐約-費城:USD60紐約-華盛頓:USD96紐約-巴爾的摩:USD86 以上僅部份適用路線,各個中途站都適用,例如紐約-紐黑文只需USD44! 使用方法是搜價欄位 ldquo;couponpromo coderdquo; 填入 ldquo;C222rdquo;、再選2人乘客,在選擇班次頁面看到寫 ldquo;promo appliedrdquo; 的車次就是有折扣的。注意只有星期六的班次才有效,且需要提早至少三天購票。  【促銷公司】美國國鐵 Amtrak【車次日期】6月29日起逢星期六的車次【預訂時限】9月7日2359前預訂(美東時間)【預訂方式】美國國鐵官網【預訂網址】httpswww.amtrak.com  附註:上述最低價錢為鐵路公司公告之最優惠價格,或本站能找到的最低價格;每一車次有否優惠票價及所存票量由鐵路公司決定,優惠票量有限售完即止。  價錢 Sample ndash; 紐約去波斯頓使用優惠碼後2人同行總價USD83 ===== 想搵平機票去玩,即上 OH!Chance!澳燦旅行資訊 httpsohchance.info 去日本旅行買咩 JR Pass好?即上 OH!Note!小燦的旅行筆記做功課 httpsohnote.info 唔知間航空公司好唔好坐?馬上 Subscribe OH Chance Youtube 睇睇佢:httpsyoutube.comcOHChanceTravel 睇埋 Facebook 專頁 httpsfb.comohchance 第一時間獲得最新旅遊資訊!

2017蕭敬騰《愛的樂章》 澳門音樂會門票今日公開發售
音樂聯合國
LifeMag Editor・2017-06-07

蕭敬騰自去年與范瑋琪同台於「亞洲娛樂總滙」新濠影滙演出後,將於8月重臨舉行首個在新濠影滙綜藝館的個人音樂會mdash; 2017《愛的樂章》音樂會澳門站。 金曲歌王蕭敬騰以一鳴驚人的唱腔打動無數歌迷,憑藉其「搖滾」與「抒情」兼備的獨特曲風展現著截然不同的舞台風采。8月12日,蕭敬騰將在新濠影滙綜藝館的舞台上為一眾歌迷帶來獨有的「蕭式」情歌魅力,演繹首首動人搖滾金曲。音樂會門票將於6月7日(星期三)早上11時後公開發售。 lt;2017蕭敬騰 愛的樂章 音樂會gt; 酒店住宿套票 ndash; 只需港幣$2,698起 優惠適用於2017年8月12日入住,包括: 明星經典路氹景觀客房一晚住宿 「2017蕭敬騰 愛的樂章 音樂會」C區門票兩張 澳門幣200元娛樂門票現金券 港幣$100娛樂消費券 可於室內恆溫游泳池,戶外游泳池及「綠野遊蹤」河道暢泳 免費無線上網 銀行優惠:中銀全幣種銀聯信用卡、中銀全幣種信用卡及中銀卡購票享有88折ndash; 適用於貴賓廂房、A、B、C及D區 門票 門票類別 門票票價 澳門幣港幣 貴賓廂房 24座 $35,0001 12座 $20,0001 A 區 $880 B 區 $680 C 區 $4802 D 區 $280 1 貴賓廂房包含與歌手見面合照 (24座 兩張 12座 一張)及餐飮。如欲查詢及預訂貴賓廂房,可電郵至 scecsales@scmacau.com 2 102及113區 ndash; 視線受阻。 票價以澳門幣港幣計算;座位表只供傪考之用,與實際場地略有偏差。

全城足球狂熱,2018世界盃足球賽,賽程一覧表
節慶盛事
Cheers!・2018-06-02

全球矚目的2018世界盃將會在6月14日2300於俄羅斯展開序幕,各國將會上演連場激戰,你又怎麼可以錯過呢?快來關注世界盃賽程一覧吧! A組:俄羅斯,沙烏地阿拉伯,埃及,烏拉圭 日期 時間 賽事 6月14日四 2300 俄羅斯 沙烏地 6月15日五 2000 埃及 烏拉圭 6月20日三 200 俄羅斯 埃及 6月20日三 2300 烏拉圭 沙烏地 6月25日一 2200 沙烏地 埃及 6月25日一 2300 烏拉圭 俄羅斯 B組:葡萄牙,西班牙,摩洛哥,伊朗 日期 時間 賽事 6月15日五 2300 摩洛哥 伊朗 6月16日六 200 葡萄牙 西班牙 6月20日三 2000 葡萄牙 摩洛哥 6月21日四 200 伊朗 西班牙 6月26日二 200 西班牙 摩洛哥 6月26日二 200 伊朗 葡萄牙 C組:法國,澳大利亞,祕魯,丹麥 日期 時間 賽事 6月16日六 1800 法國 澳洲 6月17日日 0000 祕魯 丹麥 6月21日四 2000 丹麥 澳洲 6月21日四 2300 法國 祕魯 6月26日二 2200 丹麥 法國 6月26日二 2200 澳洲 祕魯 D組:阿根廷,冰島,克羅埃西亞,奈及利亞 日期 時間 賽事 6月16日六 2100 阿根廷 冰島 6月17日日 300 克羅埃西亞 奈及利亞 6月22日五 200 阿根廷 克羅埃西亞 6月22日五 2300 奈及利亞 冰島 6月27日三 200 奈及利亞 阿根廷 6月27日三 200 冰島 克羅埃西亞 E組:巴西,瑞士,哥斯大黎加,塞爾維亞 日期 時間 賽事 6月17日日 2000 哥斯大黎加 塞爾維亞 6月18日一 200 ​ 巴西 瑞士 6月22日五 2000 ​ 巴西 哥斯大黎加 6月23日六 200 塞爾維亞 瑞士 6月28日四 200 塞爾維亞 ​ 巴西 6月28日四 200 瑞士 哥斯大黎加 F組德國,墨西哥,瑞典,南韓 日期 時間 賽事 6月17日日 2300 德國 墨西哥 6月18日一 2000 瑞典 南韓 6月23日六 2300 德國 瑞典 6月24日日 0200 南韓 墨西哥 6月27日三 2200 南韓 德國 6月28日四 2200 墨西哥 瑞典 G組:比利時,巴拿馬,突尼西亞,英格蘭 日期 時間 賽事 6月18日一 2300 比利時 巴拿馬 6月19日二 200 突尼西亞 英格蘭 6月23日六 2000 比利時 突尼西亞 6月24日日 2000 英格蘭 巴拿馬 6月28日五 200 英格蘭 比利時 6月28日五 200 巴拿馬 突尼西亞 H組波蘭,塞內加爾,哥倫比亞,日本 日期 時間 賽事 6月19日二 2000 哥倫比亞 日本 6月19日二 2300 波蘭 塞內加爾 6月25日一 2300 日本 塞內加爾 6月25日一 200 波蘭 哥倫比亞 6月28日五 2200 日本 波蘭 6月28日五 2300 塞內加爾 哥倫比亞

[議劇論映] 2020年春夏季與秋季部份日劇簡評
娛樂殿堂
君尋・2020-11-09

以下是部份春夏季日劇,以及仍在播放的秋季日劇心得: 春夏季篇: 《傻瓜父親青春白書》 官方網站:httpswww.ntv.co.jpoyabaka (進度:已完結) 個人推薦度:★★★★☆ 擅長拍搞笑片的導演福田雄一撰寫劇本,由與他合作已久的室剛升格擔任主演的《傻瓜父親青春白書》 絕對是喜出望外之作。自《勇者義彥》以來就有追看福田和室剛參與的作品,原以為這套《傻瓜父親青春白書》 又會出現濃厚的福田雄一搞笑風格(讓演員即場發揮等),但卻意外地把搞笑的部份和認真的部份維持約各一半的比例,甚至帶點溫情。雖然本劇的本質依然是一齣喜劇,但故事相對嚴謹,尤其是對父親室剛和女兒永野芽郁之間的感情描寫亦有下不少功夫。整體來說以大學生生活和父親對女兒誇張的關愛交織而成的喜劇,可以讓觀眾笑中帶淚輕鬆看完。 《危險的2人K2》 官方網站:httpswww.tbs.co.jpkiwadoifutari_TBS (進度:已完結) 個人推薦度:★★★☆☆ 上一季有著奪下日劇學院最優秀作品獎的二人組刑警劇集《MIU404》,難免會與同樣標榜著「拍檔」的《危險的2人K2》 有所比較。前者的在劇中探討的議題相對嚴肅,後者則是輕鬆,甚至以有點搞笑的方式查案(對,就是那不太正經的潛入調查)。加上集數不多,主線劇情主要聚焦在兩位男主角田中圭和山田涼介的關係和身世之上。兩位主角,田中圭演熱血衝動的哥哥和山田涼介演冷靜守規的弟弟,個人覺得沒有如《MIU404》中星野源和綾野剛的那種火花。整體來說沒特別出色但也不難看,而且節奏算快,可以很輕鬆就看完的日劇。 《Diver特殊潛入班》 官方網站:httpswww.ktv.jpdiver (進度:已完結) 個人推薦度:★★★☆☆ 臥底題材在香港電影和電視劇都非常常見,但日劇中則是相對新穎的題材。福士蒼汰的演技依舊維持在一貫的水準,但感覺略有進步,加上劇中有不少近身肉搏的戲份(少有的拳拳到肉),相信能滿足福士的粉絲。全劇以潛入、隱藏身份調查為主軸,確實有與一般刑事劇不同的感覺,但整體集數太短(只有5集),覺得狀況正好之時卻就要完結了,而且設定上應該可以再玩多點不同的idea。最後一集劇本突然變成如《無間道》般警察與壞人間勾心鬥角的劇情則有點意外。 秋季篇: 《Talio 代理復仇的2人》 官方網站:httpswww.nhk.jppts78YR8PJXJ5 (進度:第4集) 個人推薦度:★★★★☆ 女主角濱邊美波很忙,連續主演幾季的連續劇,同時還在進行電影的拍攝,實在令人擔心她的身體狀況。由制作《圈套》的組合,蒔田光治和木村ひさし再次合作創作的《Talio 代理復仇的2人》,是一套非常非常看觀眾對不對得上他們兩人的電波的劇。滿滿《圈套》的風格,以及《99.9 刑事専門弁護士》的影子,這種時而認真又帶點耐人尋味的搞笑方式,若觀眾受不了只會覺得很尷尬。劇名中的代理復仇,卻沒有很完全落實在故事中,反而岡田將生經營的公司就像萬事屋一樣,一直在幫助上門求助的客人解決問題,而濱邊美波就擔任法律專家和衝動熱血的角色。而且不同單元故事的劇本水準也有點不同,個人覺得第一集開局是相對較差的。(由於筆者對得上兩位製作人的電波,所以額外加了一分推薦度) 《極主夫道》 官方網站:httpswww.ytv.co.jpgokushufudo (進度:第4集) 個人推薦度:★★★☆☆ 漫畫改編作品,加上又是帶有豐富笑料的內容,因此劇集不時都出現不少誇張的情節。亮點絕對是玉木宏的演出,其角色外表還原度極高,還重現各種顏藝,上演不少讓人捧腹大笑的場面。不清楚原作是否每集很短的漫畫,個人感覺到日劇每集像是在幾個單元故事併為一集。若對日本黑道文化和略懂日文的觀眾更能投入和更易理解笑點。推薦給對日本黑道文化認識、尋找輕鬆搞笑作品的朋友,以及玉木宏的粉絲。 《七人的秘書 》 官方網站:httpswww.tvasahi.co.jp7hisho (進度:第2集) 個人推薦度:★★☆☆☆ 由大人氣《Doctor X》的編劇中園美保和製作人內山聖子再次合作操刀的《七人的秘書》算是開播前筆者較為期待的作品之一。果不其然,戲內各處都帶點《Doctor X》的影子,但與大門未知子相比,劇情爽度嚴重不足。秘書們實行復仇計劃不但有破綻、不成熟,最終的結果未能大快人心,只是讓對方得到相應的懲罰。而設定上幾位不同界別的秘書透過自身相應的領域中的影響力從事報復行動是有一定吸引力,然而演出來的時候只覺得人太多,每個人戲份也分得很薄,導致主角木村文乃和其他秘書的角色在2集後依然不夠立體,也間接影響劇情張力。 《消除老師的方程式》 官方網站:httpswww.tvasahi.co.jphouteishiki (進度:第1集) 個人推薦度:★★☆☆☆ 看完第一集會讓人以為是《3年A班》的翻版,但不論感人的部份還是學生角色的顏值都沒前者那麼好。而且長度只有30分鐘一集,第一集不但要介紹主角,還要「解決」一個學生的問題,劇情太過趕,沒法鋪排足夠的感情堆疊,就要結束,感受不到老師和學生的魅力。加上同類的出色作品(老師以瘋狂/不合常理的方式教育學生)實在太多,《3年A班》、《告白》、《惡之教典》等多不聲數。不期待能超越但能有接近的水準都不是容易,希望田中圭沒選錯劇本。 《危險的維納斯》 官方網站:httpswww.tbs.co.jpkikenna_venus (進度:第4集) 個人推薦度:★★★★★ 改編自東野圭吾的同名作品,不愧是大師,能把一個老掉牙的爭產題材,寫成懸疑度十足的推理故事。沒看過原作沒法比較,單論日劇的部份暫時仍未有很大的瑕疵,希望能保持到結尾 。吉高由理子把帶有神秘色彩的女主角演得淋漓盡致,很多地方都會讓人覺得她很有可疑,但與主角妻夫木聰的那種朋友以上戀人之下的互動,卻又令人不願意往壞的方向想。就有如《輪到你了》中的那位真犯人一樣。當然,吉高由理子的角色未必是假冒的弟婦,反而妻夫木聰也許才是真犯人也說不定,所以這種每集掃除一個角色懸疑的劇集,才會讓人忍不住一直追看下去。另外,Back Number演唱的主題歌非常好聽。 另外,之前曾為2020年春夏季的個別劇集寫下文章,可分別參考以下連結: 《BG~身邊警護人~2》 httpslifemag.cyberctm.comzh_TWblogwatanuki4111076 《默默奉獻的灰姑娘》 httpslifemag.cyberctm.comzh_TWblogwatanuki4111386 《MIU404》(

Flixbus 捷克國內線促銷!單程只需CZK29 (約MOP10.5)!
激安優惠
OHChance 旅遊誌・2018-08-09

德國長途巴士公司 Flixbus 的捷克分公司再推出國內線優惠,跟過往的促銷一樣,捷克國內線全部最低單程 29 CZK(MOP10.5)起 !今次優惠仲賣到12月頭ge 車飛,如果已經買左漢莎平飛去捷克,真係可以快手買埋車飛架啦。 優惠路線為所有捷克國內線如下: Prague ndash; Benescaron;ovPrague ndash; Brno(捷克第二大城)Prague ndash; Českeacute; Budějovice(CK附近的小城CBPrague ndash; Českyacute; Krumlov(童話小鎮 CK)Prague ndash; Jihlava(大學城)Prague ndash; Karlovy Vary(溫泉小鎮 KV)Prague ndash; LiberecPrague ndash; LubenecPrague ndash; Mladaacute; BoleslavPrague ndash; Piacute;sekPrague ndash; Plzeň(啤酒小鎮)Prague ndash; Taacute;borPrague ndash; ZnojmoBrno ndash; OlomoucBrno ndash; Ostrava 此優惠在 Flixbus app 或官網上預訂均有。另外記得要 set 網頁或 app 為捷克版及以捷克克朗CZK計價,因為以歐元計價最低為1.99歐。app 設定幣值方法為右下角 ldquo;Morerdquo;,拉到最底的 ldquo;settingsrdquo;,就可以設定計價幣值。 Flixbus 搭乘經驗請參考:httpsohnote.infoflixbus  【促銷公司】Flixbus【車次日期】9月2日至12月8日【預訂時限】售完即止【預訂方式】至 Flixbus 官網預訂【預訂網址】httpsohchance.inforefflixbus  附註:上述最低價錢為巴士公司公告之最優惠價格,或本站能找到的最低價格;每一車次有否優惠票價及所存票量由巴士公司決定,優惠票量有限售完即止。   價錢 Sample ndash; CK往布拉格單程連稅CZK29 ===== 想搵平機票去玩,即上 OH!Chance!澳燦旅行資訊 httpsohchance.info 去日本旅行買咩 JR Pass好?唔知間航空公司好唔好坐?即上 OH!Note!小燦的旅行筆記做功課 httpsohnote.info 睇埋 Facebook 專頁 httpsfb.comohchance 第一時間獲得最新旅遊資訊!

Spring Boot 05 - 為 http json api 加入登入要求
科技新知
MacauYeah・2024-07-02

本節,我們將為之前的http服務,加入認證機制,只有在資料庫現存的用戶可以登入及訪問我們的json api。 下戴模版 慣例,我們用Spring Initializr Maven 下載模版,Dependency主要選擇 Spring Web Spring Boot DevTools Spring Security Controller 跟上節一樣,我們起一個Controller,為簡化測試,我們只做http GET api。 由於本blog對於Source Code的顯示不太友好,有需要看source code的,請到Github查看 srcmainjavaiogithubmacauyeahspringboottutorialspringbootwebapidatacontrollerHomeController.java import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMappingquot;apiquot; public class HomeController @GetMappingquot;someRecorduuidquot; public Map readSomeRecord@PathVariable String uuid return Map.ofquot;retquot;, quot;your uuidquot; uuid; 準備我們的test case,但這次我們預期它應該要出現登入失敗的結果。 srctestjavaiogithubmacauyeahspringboottutorialspringbootwebapidatacontrollerHomeControllerTest.java @SpringBootTest @AutoConfigureMockMvc public class HomeControllerTest @Autowired private MockMvc mockMvc; @Test void testNoLogin throws Exception RequestBuilder requestBuilder = MockMvcRequestBuilders.getquot;apisomeRecord1234quot; .contentTypeMediaType.APPLICATION_JSON; this.mockMvc.performrequestBuilder .andExpectMockMvcResultMatchers.status.is4xxClientError .andExpectMockMvcResultMatchers.jsonPathquot;$.retquot;.doesNotExist .andDoMockMvcResultHandlers.print; 在我們執行上述的測試,test case 成功過了。我們的基本設定跟上一節其實沒有多大改動,為何現在http api會回傳狀態 401? 那是因為我們在依賴中加了,Spring Security,它配合了Spring Web,就會自動為所有api加入權限檢測。我們的測試中,沒有任何用戶登入,當然會出現 http 401。為了讓我們可以好好管理誰可以使用api,我們就來設定一定Security。 我們加一個WebSecurityConfig.java,暫時指定所有的訪問路徑都必需有USER權限,並且用 http basic的方式登入。 srcmainjavaiogithubmacauyeahspringboottutorialspringbootwebapidataconfigWebSecurityConfig.java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.security.config.Customizer; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.web.SecurityFilterChain; @Configuration @EnableWebSecurity public class WebSecurityConfig @Bean SecurityFilterChain securityFilterChainHttpSecurity http throws Exception http.authorizeHttpRequestsauthorizeHttpRequests gt; authorizeHttpRequests.requestMatchersquot;quot;.hasRolequot;USERquot;; 所有的訪問路徑都必需有USER權限 ; http.httpBasicCustomizer.withDefaults; 使用http basic作為登入認證的方式 return http.build; 上述例子,只是擋了沒有權限的人,我們還需要讓有登入身份的用戶可以成得取限User權限。 我們繼續修改,WebSecurityConfig,加入只在記憶體有效的InMemoryUser import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.provisioning.InMemoryUserDetailsManager; public class WebSecurityConfig .. @Bean public PasswordEncoder passwordEncoder return new BCryptPasswordEncoder; 我們的密碼不應該明文儲,比較保險,我們使用BCrypt演算法,為密碼做單向加密。 @Bean public UserDetailsService userDetailsService UserDetails user = User.withUsernamequot;adminquot; .passwordpasswordEncoder.encodequot;passquot; .rolesquot;USERquot;.build; 我們在記憶中體,加入一個測試用的User,它的名字為admin,密碼為pass,權限為User return new InMemoryUserDetailsManageruser; 然後加入新的測試,直接模擬Role。結果是通過的。 srctestjavaiogithubmacauyeahspringboottutorialspringbootwebapidatacontrollerHomeControllerTest.java @Test void testLoginWithRoles throws Exception RequestBuilder requestBuilder = MockMvcRequestBuilders.getquot;apisomeRecord1234quot; .contentTypeMediaType.APPLICATION_JSON.with SecurityMockMvcRequestPostProcessors.userquot;someonequot; .rolesquot;USERquot;, quot;ADMINquot;; 沒有使用密碼,只使用Role this.mockMvc.performrequestBuilder .andExpectMockMvcResultMatchers.status.is2xxSuccessful .andExpectMockMvcResultMatchers.jsonPathquot;$.retquot;.valuequot;your uuid1234quot; .andDoMockMvcResultHandlers.print; 再來一個測試,改用密碼登入,分別輸入錯的和正確的密碼。 @Test void testLoginWithWrongPasswordAndNoRole throws Exception RequestBuilder requestBuilder = MockMvcRequestBuilders.getquot;apisomeRecord1234quot; .headerquot;Authorizationquot;, quot;Basic randompassquot; 輸入錯的密碼,應該回傳http 401 Unauthorized .contentTypeMediaType.APPLICATION_JSON; this.mockMvc.performrequestBuilder .andExpectMockMvcResultMatchers.status.is4xxClientError .andDoMockMvcResultHandlers.print; @Test void testLoginWithPassword throws Exception RequestBuilder requestBuilder = MockMvcRequestBuilders.getquot;apisomeRecord1234quot; .headerquot;Authorizationquot;, quot;Basic YWRtaW46cGFzcw==quot; http basic 就是把 adminpass 轉成base64 .contentTypeMediaType.APPLICATION_JSON; this.mockMvc.performrequestBuilder .andExpectMockMvcResultMatchers.status.is2xxSuccessful .andExpectMockMvcResultMatchers.jsonPathquot;$.retquot;.valuequot;your uuid1234quot; .andDoMockMvcResultHandlers.print; 最後,當然是正確的密碼才能通過。若果大家還是半信半疑,我們可以跑起真的正服務(IDE RUN或mvn springbootrun),然後用curl去試。 curl httplocalhost8080apisomeRecord1234 failed with 401 curl u quot;adminpassquot; httplocalhost8080apisomeRecord1234 successed 使用SQL Database讀取用戶登入資訊 一般而言,我們不可能把所有用戶登資訊打在InMemoryUser中,通常背後有一個資料庫儲存所有的用戶資訊,我們在登入時,讀取它來做對比檢證。 為此,我們在maven中,加入 Spring Data JPA h2 database (或任何你的資料庫,如mysql 、 sql server) 最後一步,我們把InMemoryUser去掉,改為從資料庫讀取。因為原始碼太多,就不全部貼上。最主要的是WebSecurityConfig.java要關掉之前的UserDetailsService,改為提供一個UserServiceImpl類,它會實現UserDetailsService的功能。 @Configuration @EnableWebSecurity public class WebSecurityConfig 把原來的Bean先變成註解,其他不變 @Bean public UserDetailsService userDetailsService UserDetails user = User.withUsernamequot;adminquot; .passwordpasswordEncoder.encodequot;passquot; .rolesquot;USERquot;.build; return new InMemoryUserDetailsManageruser; springboottutorialspringbootwebapidatasrcmainjavaiogithubmacauyeahspringboottutorialspringbootwebapidataconfigUserServiceImpl.java other import import org.springframework.security.core.authority.SimpleGrantedAuthority; import org.springframework.security.core.userdetails.User; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.crypto.password.PasswordEncoder; @Service public class UserServiceImpl implements UserDetailsService @Autowired PasswordEncoder passwordEncoder; @Autowired UserRepo userRepo; @Override public UserDetails loadUserByUsernameString username throws UsernameNotFoundException 因為我們資料庫沒有資料,為了方便測試密碼的加密,我們在java code上直接插入一筆資料。 UserEntity defaultUser = new UserEntity; defaultUser.setUsernamequot;adminquot;; defaultUser.setPasswordpasswordEncoder.encodequot;passquot;; defaultUser.setRolequot;USERquot;; defaultUser.setUuidUUID.randomUUID.toString; userRepo.savedefaultUser; 上述為測試用插入資料,不應該出現在正式使用環境中。 UserEntity user = userRepo.findOneByUsernameusername .orElseThrow gt; new UsernameNotFoundExceptionusername quot; not foundquot;; 找找資料庫有沒有正在登入的該名使用者username List authorities = List.ofnew SimpleGrantedAuthorityquot;ROLE_quot; user.getRole; LOG.debugquot;got user uuid, username, role from databasequot;, user.getUuid, username, user.getRole; 如果前面的 findOneByUsername 有結果回傳,我們就給它一個ROLE_XXX的權限。 return new Userusername, user.getPassword, authorities; 這裏從沒有檢查過密碼是否有匹配,全部交給Spring Security去做 springboottutorialspringbootwebapidatasrcmainjavaiogithubmacauyeahspringboottutorialspringbootwebapidataentityUserEntity.java springboottutorialspringbootwebapidatasrcmainjavaiogithubmacauyeahspringboottutorialspringbootwebapidatarepoUserRepo.java 上述段落中,筆者省略了UserEntity和UserRepo,它們只是一般的springdatajpa概念,有需要可以經文末的連結查看完全原始碼。最需要注意的,是UserEntity的password欄位,在資料庫中是以加密的方式儲存。我們在配匹登入者與資料庫記錄時,也沒有自行檢驗密碼的需要。我們只是在加密過的密碼回傳給Spring Security,Spring框架會自行把登入者輸入的密碼與加密了的密碼作比較。

新購機票可免費更改之航空公司匯總
激安優惠
OHChance 旅遊誌・2020-03-10

目前已經有多間航空公司推出於特定時間內預訂的全新機票,未來一定時間內可免手續費改期及航點的特別措施。以下各航空公司的特別安排除非是特別作了注明,否則適用其公司下之所有航點;亦除非另外註明,否則航空公司容許的免費更改只限一次。  《國泰國泰港龍航空》購票日期:3月9日至4月20日出發日期:2021年2月28日或之前新行程完成日期:2021年2月28日或之前可否改期:可,免手續費,需補差價可否改航點:可,免手續費,需補差價可否退票:按照原本票規 註:國泰國泰港龍航空可無限次免更改手續費(但每次都有可能要補差價) 官方公告:httpswww.cathaypacific.comcxzh_HKofferscollectionunlimitedchangeswithoutcharge.html  《新加坡航空勝安航空》購票日期:3月6日至3月31日出發日期:2021年3月31日或之前新行程完成日期:2021年3月31日或之前可否改期:可,免手續費,需補差價可否改航點:可,免手續費,需補差價可否退票:按照原本票規 官方公告:httpswww.singaporeair.comen_UKsgmediacentrenewsalertid=inrass4b  《漢莎集團:包括漢莎航空 瑞士航空 奧地利航空 布魯塞爾航空 多諾米航空》購票日期:至3月31日出發日期:12月31日或之前新行程完成日期:12月31日或之前可否改期:可,免手續費,需補差價可否改航點:可,免手續費,需補差價可否退票:按照原本票規 官方公告:httpswww.lufthansa.comhkenflightinformation.html  《荷蘭皇家航空 KLM》購票日期:至3月31日出發日期:5月31日或之前新行程完成日期:5月31日或之前可否改期:可,免手續費,需補差價可否改航點:可,免手續費,需補差價可否退票:按照原本票規 官方公告:httpswww.klm.comtravelhk_enprepare_for_travelup_to_dateflight_updateindex.htm  《北歐航空 SAS》購票日期:3月5日至3月19日出發日期:8月31日或之前新行程完成日期:8月31日或之前可否改期:可,免手續費,需補差價可否改航點:可,免手續費,需補差價可否退票:按照原本票規 註:挪威、丹麥、瑞典之間的機票,及上述三國的國內機票不適用。 官方公告:httpswww.flysas.comhkenlowfarecalendar 《芬蘭航空》購票日期:3月9日至4月30日出發日期:11月30日或之前新行程完成日期:11月30日或之前可否改期:可,免手續費,需補差價可否改航點:可,免手續費,需補差價可否退票:按照原本票規 官方公告:httpswww.finnair.comhkenflightinformationtravelupdates 《阿聯酋航空》購票日期:3月6日至3月31日出發日期:不限新行程完成日期:原購票日期起計11個月內可否改期:可,免手續費,需補差價可否改航點:可,免手續費,需補差價可否退票:按照原本票規 官方公告:httpswww.emirates.comhkchinesebookaboutbookingonlinebookwithpeaceofmind  《阿堤哈特航空》購票日期:3月8日至4月7日出發日期:3月22日起新行程完成日期:無特別註明可否改期:可,免手續費,需補差價可否改航點:可,免手續費,需補差價可否退票:按照原本票規 官方公告:(資料來自官方宣傳電郵)  《美國聯合航空》購票日期:3月3日至3月31日出發日期:不限新行程完成日期:原出發日期起計12個月內可否改期:可,免手續費,需補差價可否改航點:可,免手續費,需補差價可否退票:可,原機票價值可用於折抵新購機票 官方公告:httpswww.united.comualzhhkhkflytravelnotices.html#ChangeFeeTerms 《美國航空》購票日期:3月5日至3月31日出發日期:3月5日至2021年1月30日新行程完成日期:原出發日期起計12個月內可否改期:可,免手續費,需補差價可否改航點:可,免手續費,需補差價可否退票:按照原本票規 官方公告:httpswww.aa.comi18ntravelinfonochangefeetermsandconditions.jsp 《達美航空》購票日期:3月1日至3月31日出發日期:3月5日至2021年2月25日新行程完成日期:2021年2月28日或之前可否改期:可,免手續費,需補差價可否改航點:可,免手續費,需補差價可否退票:可,原機票價值可用於折抵新購機票 官方公告:httpswww.delta.comusenadvisoriesotheralertscoronavirustravelupdates  《英國航空》購票日期:3月3日至3月16日出發日期:無特別註明新行程完成日期:原出發日期起計12個月內可否改期:可,免手續費,需補差價可否改航點:可,免手續費,需補差價可否退票:按照原本票規 官方公告:httpswww.britishairways.comenmoflightsandholidaysflightsbookwithconfidence 《維珍大西洋航空》購票日期:3月4日至3月31日出發日期:至2020年9月30日新行程完成日期:至2020年9月30日可否改期:可,免手續費,需補差價可否改航點:可,免手續費,需補差價可否退票:按照原本票規 官方公告:httpsflywith.virginatlantic.comgbennews.html#nofee 《新西蘭航空》購票日期:3月5日至3月31日出發日期:無得別註明新行程完成日期:無得別註明可否改期:可,免手續費,需補差價可否改航點:可,免手續費,需補差價可否退票:按照原本票規 官方公告:httpswww.airnewzealand.comtravelalerts#GdAzlHKDvHtcugY2znHv 《酷航 Scoot》購票日期:3月10日至5月14日出發日期:不限新行程完成日期:無得別註明可否改期:可,免手續費,需補差價可否改航點:不可可否退票:按照原本票規 註:同一訂單內的所有乘客需要一起更改,不可分拆 官方公告:httpswww.flyscoot.comzhtwbookwithconfidence === 想搵平機票去玩,即上 OH!Chance!澳燦旅行資訊 httpsohchance.info 去日本旅行買咩 JR Pass好?即上 OH!Note!小燦的旅行筆記做功課 httpsohnote.info 唔知間航空公司好唔好坐?馬上 Subscribe OH Chance Youtube 睇睇佢:httpsyoutube.comcOHChanceTravel 睇埋 Facebook 專頁 httpsfb.comohchance 第一時間獲得最新旅遊資訊!