搜尋

搜尋結果

【至潮運動】無論男女老幼隨時隨地都能街頭健身!
專題報導
Cheers!・2019-05-16

講起健身,一般都會想到在健身房做 Gym,而一般健身房都會有時間限制,令很多想健身的朋友都為之卻步,所以小編就為大家介紹近年興起的街頭健身運動,採訪了一「澳門街頭健身協會」的核心成員,帶大家深入了解街頭健身! 街頭健身是可以利用任何簡單設施,如公園、運動場等休憩設備,利用自身體重進行體育鍛練的運動。街頭健身和健身房健身的分別在於,健身房健身會依靠外來力量集中鍛練特定肌肉,而街頭健身只利用自身重量來鍛練身體,更能鍛練全身肌肉的協調性。 街頭健身的基本動作主要有掌上壓、引體上升和雙槓屈臂支撑。 雙槓屈臂支撑 無論男女老幼都可加入澳門街頭健身協會,新加入的朋友需要做一個小測試,去區分鍛練的難度,難度分為玩家、野獸和大神級別。 測試一:正手引體 用正手做引體上升,盡所能做到最多次數。 測試二:澳式引體 未能完成測試一的朋友,可以嘗試簡易一點的澳式引體,找一個較低的支撐點,以腳支撐地面,身體懸空至大約與腰部同高的位置,做類似反向的俯卧撑動作。 測試三:掌上壓 測試四:深蹲 每個測試只要成功做到一定量,就可以進入野獸級別的鍛練,未能達標的也不用灰心,可從最簡易的玩家級別進行鍛練,只要努力堅持鍛練,也能從玩家級別進升致野獸級別。 大神級別的成員通常都能做到更高難度的動作。 後水平 人體國旗 想擁有健康身體線條的女士,街頭健身不失為一個很好的鍛練方法。 成員進行團操鍛練。 澳門街頭健身協會現有 112 名成員,平均每次團操都有 2030 人參與,非常熱血。 澳門街頭健身協會團操時間 日期:逢周二、四 時間:20002200 地點:黑沙環重型停車場側(澳門勞動節大馬路休憩區) 費用:全免

AirAsiaGo 馬泰晚鳥優惠,43夜套票每人HKD1,199起!
激安優惠
OHChance 旅遊誌・2016-08-30

AirAsiaGo 推出9月、10月出發的晚鳥優惠: 最低價錢報告      機酒套票 | 單機票.曼谷: HKD890 (MOP916).清邁: HKD940(MOP1,066).芭堤雅:HKD874 (MOP761).吉隆坡:HKD983(MOP1,020) (套票以4日3夜2人同行計,表中為平均每人價錢) 以上價錢為澳門出發來回並已計入稅項。 重點資訊.不論機票定套票,10月平飛較多; .平飛量總體而言ok,十一大假例牌無平,但中秋重陽都可以看看; .官方公告套票澳門出發4日3夜是平均每人HKD1,199起,但事實上可以搵到900以下,而且某些日子買套票比單買機票仲要平dd(當然酒店是hostel級數),budget 夠的話亦可以看看4、5星酒店,一樣有d 平均每人HKD1,500 有找; .套票優惠不一定要4日3夜,但一般而言3日2夜方會較優惠,而套票亦不一定要全程住哂同一間酒店。可以利用 ldquo;我只有部分日期需要入住酒店rdquo; 功能,只選入住部份日子; .建議訂套票前還是看看機票單價及另外訂酒店要幾錢,再看套票是否較抵。 附加資訊.AirAsia 票價未包託運行李及餐點(但已包手提行李7KG); .如在 AirAsiaGo 預訂套票,可憑訂機票預訂編號到 AirAsia 官網事後加購行李; .每一單程行李價格可至以下查閱(於AirAsiaGo 買套票後加行李與單買AirAsia機票後加收費一樣):httpohnote.ohchance.infop=1528#AA 附註:上述最低價錢為航空公司公告之最優惠價格,或本站能找到的最低價格;每一航班有否優惠票價及所存票量由航空公司決定,優惠票量有限售完即止。 【促銷公司】AirAsiaGo 【搭乘日期】9月1日至10月31日【開賣時間】已開賣,至9月2日2359【最長停留】沒有【航班限制】沒有【預訂網址】httpwww.airasiago.com.hkfreeflights 價錢 Sample ndash; 澳門飛曼谷4日3夜來回

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框架會自行把登入者輸入的密碼與加密了的密碼作比較。

詭異!澳門九澳汽車墮坡,司機人間蒸發!竟然是去…
其他
澳門生活圈・2018-11-20

都說毒是魔鬼,千萬別碰 可有人就是不信邪! 在如此嚴厲法規之下 還是有一些駕駛員去觸碰這條ldquo;高壓線rdquo; 都說吃一塹長一智 可有人就是不長記性! 任他怎麼耍小心機 最終都自不量力、難逃一劫 一澳人澳事 上週六(17日)早上,在路環九澳高頂馬路上,一位途徑司機發現一輛白色旅行車墮坡,立即報警。但消防到場一看,What?!車裡竟然沒有人! 搜救人員都驚呆了,究竟「消失的司機」去了哪裡呢? 接著,消防隊員用吊車把墮坡汽車吊上ldquo;岸rdquo;後,在草地裡發現更震驚的東西mdash;mdash;一張沾有冰毒的錫箔紙和吸毒工具! 原來,這起事故很有可能與毒駕失控有關.司機是為了逃避ldquo;毒駕罪rdquo;,才連車都不要拔腿就跑。 其後,警員在事發車廂裡發現車主遺落的身份證和銀行卡,通過翻看高頂馬路一帶「天眼」錄影,發現事發當天淩晨快三點時,墮坡汽車開到九澳高頂燒烤公園後不見了。 當天淩晨5點半左右,墮坡車司機從山坡底爬上路邊,然後坐上一輛重型電單車車尾揚長而去。 前天上午8點左右,警方接到鐘男(墮坡司機)家人提供的線索消息後,在鐘男的路氹住所附近將他截獲。 經過一天的休息和排泄,鐘男順利通過毒品和酒精測試。接受警方調查時,鐘男一度否定ldquo;我沒有毒駕rdquo;。他堅持咬定自己喝多了完全忘了發生過什麼。但是他不知,自己的謊言在天眼下無處遁形。 雖然鐘男僥倖的逃過了毒駕及酒駕嚴刑峻法的一劫(罪成至少一至三年有期徒刑),但卻逃不過《道路交通法》中的「逃避責任罪」。 目前,鐘男罪成量刑最高是有期徒刑一年或120日罰金,如若法官認為被告犯案情節嚴重,未必准以罰金代替。 現在開車的司機都知道ldquo;喝酒不開車,開車不喝酒rdquo;,但很多人偏偏不信,毒駕的後果往往比酒駕更嚴重! 冰毒、搖頭丸之類的毒品會幹擾視覺、聽覺和觸覺,司機吸食後就會產生一種盲目的自信感,有的甚至會出現幻覺、妄想和狂躁等現象,促使其做出如加速、逆行等危險的駕駛行為。 感官和全身協調能力下降,判斷力低下甚至完全喪失判斷,一不小心就容易釀成大禍! ldquo;毒駕rdquo;給個人、家庭、社會 帶來的隱患和危害是巨大的 請一定要珍愛生命,遠離毒品! 素材來源:力報 圖片來源:力報、攝圖網、百度表情包 版權屬於原作者 編輯撰寫:小宇

首爾 (之三) --- 明洞酒店篇
走遍世界
. 小城閒人 .・2017-12-28

十個去首爾七個會選明洞的酒店 無他 你我她女仕最愛SHOPPING 以一般來說 明洞實在是方便 這次本著行行逛逛為主 住明洞實至名歸 什麼都方便easy 不過 閒人並沒有選擇最受歡迎的明洞站地鉄4號線周邊一帶 反而多走遠幾分鍾路來到乙支路3街站附近的Nine Tree Premier Hotel Myeongdong II 注意 不是Nine Tree Myeongdong Hotel喔 這家Nine Tree 酒店十分新淨而價格地點適中 十分值得推介 房間明亮整潔窗外眺望南山塔 床舖舒適樣樣齊全亦比一般明洞的房間大 有充足空間放了小梳化書桌化妝台 放兩個行李箱平放地下後還有充足空間走動 以一般入門房型來說十分好 唯一美中不足是沒有放行李箱的行李架 所以行李要直接放在地上收拾 這點扣了分 按這裡 httpwww.ninetreehotel.comNTM2 連接到酒店官網參考更多房間照片 因為跟實景一模一樣所以自己沒拍 房間及以下酒店內部圖片採自官網 版權屬原作者 當然 入住要有心理準備走路到明洞要大約7,8分鐘 但其實只是一條路直走再過馬路走走而已 閒人之前住過當時也是很新的明洞站大街上的L7酒店 說近雖然是近又很方便 但就是沒有太喜歡 相反 這次有丁點少距離要走走路感覺很好 其實從仁川機場要來 Nine Tree Premier Hotel Myeongdong II 也是坐6015巴士 就在乙支路3街站下車 轉入傍邊的小街走2分鐘過馬路便到達酒店 十分容易 而且一下車巴士站廣告牌就直接有 Nine Tree Premier Hotel 的廣告指示 非常貼心 回程去機場因為這一站較明洞早兩個站 不用擔心人多上不到車 同時 乙支路3街站接駁2條地鉄線 閒人去東大門DDP, 新沙洞非常方便 酒店雖然說不上有什麼星級酒店設施 也在頂樓設有一個Lounge 9 如果早機到步不想到處走 可以在Lounge稍作休息等checkin 而在夏季頂樓Rooftop Garden開放 可以看到南山塔夜景一邊欣賞音樂一邊渴點飲品也不失賞心悅目 地下大堂內傍邊設有一家GS25 目測相當受住客歡迎每晚回來均人頭湧湧買零食飲料 實行回房間再吃吃吃 笑 酒店隔鄰亦有一間Starbucks 門外對面往地鉄站方向走有 Paris Baguette 也有好幾家韓式食店跟Coffe Shop 光顧的大都是本地人感覺很不錯 而往明洞方向走還會經過明洞有名氣的老牌景福宮烤肉店 總結 6天5夜行行逛逛首爾 入住的Nine Tree Premier Hotel Myeongdong II CP值高很不錯的選擇 值得推介 窩心小語 閒人是次的酒店選擇以性價比CP值著眼 如行程非常緊湊或地點較為重要或對設施要求有期望者可參考Lotte集團旗下L7 Hotel Roof Top設有Foot spa可在晚上一邊欣賞南山塔夜景一邊泡腳或飲番杯 參考網址httpwww.lottehotel.coml7myeongdongenintro.asp 其他新酒店可考慮 G2 Hotel, Lotte City Hotel

咖啡迷福音!Starbucks Reserve™ 插旗澳門美獅美高梅 同場加映:咖啡大師教你呷啡四大步驟
澳城餐飲
Cheers!・2018-03-09

在澳門想飲一杯高質咖啡,選擇其實不算多。但隨著美獅美高梅開幕而登陸澳門的「Starbucks Reservetrade; Coffee Experience Bar」,就由咖啡大師打骰,提供 6 種沖調方法和多款由全球搜羅而來的珍貴咖啡豆,帶來另類嘆啡體驗! Reserve Coffee Experience Bar 以開放式設計,Bar 枱上放有不同的沖泡工具,由咖啡師即席沖啡。 這間星巴克佔地 4,500 呎,是澳門區最大的分店。 6 種沖調方法 + 1% 超高質阿拉比卡咖啡豆 有別於一般的星巴克,Starbucks Reserve 只選用品質最高的阿拉比卡咖啡豆,再挑選其中最優質及具獨特風味的 1%,配搭不同的咖啡沖調方法及飲品,包括:氮氣冷萃咖啡(Nitro Cold Brew)、虹吸(Siphon)、手沖(Pour Over)、濾壓壺(Coffee Press)、Chemex 咖啡壺及 Black Eagle 半自動特濃咖啡機。加上約每 78 星期轉換一次咖啡豆,保證每次呷啡都有新鮮感。 分店特意引進歷經超過 14 小時冷萃,並以優質技術注入氮氣的咖啡,必試! Starbucks Reservetrade; 咖啡豆會定期(約 78 星期)更換,Keep 住帶比大家的新鮮感。 分店更特意請來澳門土生土長的藝術家霍凱盛創作了一系列融入葡萄牙色彩的藝術作品。 「星粉」一定不能錯過澳門美獅美高梅分店獨家發售的 Starbucks Reservetrade; 系列商品!(MOP 130 480) 咖啡雪芳蛋糕(MOP 43) 、野莓朱古力蛋糕(MOP 43)和烤牛肉法式三文治(MOP 58)都是星巴克的新品,配搭咖啡一流。(左至右) 咖啡大師教路!呷啡四大步驟 小編邊睇咖啡師沖啡的同時,亦不忘向咖啡師取經,請教了品嚐精品咖啡的正確步驟。共可分成輕聞、輕啜、細味及描述四大步驟。 ► 輕聞:以手掌作杯蓋,慢慢吸入咖啡香氣。 ► 輕啜:剛沖好的咖啡溫度較高,所以輕呷咖啡,慢慢品嚐咖啡的味道。 ► 細味:大口喝下,讓咖啡停留口腔 2 秒左右,全方位感受咖啡的特性。 ► 描述:最後可形容咖啡的口感及自身體會。 澳門美獅美高梅星巴克 地址:澳門美獅美高梅 G 層 120 號鋪 開放時間:星期日至星期四及公眾假期 0730 ndash; 2300;星期五、星期六及公眾假期前夕 0730 ndash; 0000