搜尋

搜尋結果

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查看 //src/main/java/io/github/macauyeah/springboot/tutorial/springbootwebapidata/controller/HomeController.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 @RequestMapping("/api") public class HomeController { @GetMapping("/someRecord/{uuid}") public Map readSomeRecord(@PathVariable String uuid) { return Map.of("ret", "your uuid:" + uuid); } } 準備我們的test case,但這次我們預期它應該要出現登入失敗的結果。 //src/test/java/io/github/macauyeah/springboot/tutorial/springbootwebapidata/controller/HomeControllerTest.java @SpringBootTest @AutoConfigureMockMvc public class HomeControllerTest { @Autowired private MockMvc mockMvc; @Test void testNoLogin() throws Exception { RequestBuilder requestBuilder = MockMvcRequestBuilders.get("/api/someRecord/1234") .contentType(MediaType.APPLICATION_JSON); this.mockMvc.perform(requestBuilder) .andExpect(MockMvcResultMatchers.status().is4xxClientError()) .andExpect(MockMvcResultMatchers.jsonPath("$.ret").doesNotExist()) .andDo(MockMvcResultHandlers.print()); } } 在我們執行上述的測試,test case 成功過了。我們的基本設定跟上一節其實沒有多大改動,為何現在http api會回傳狀態 401? 那是因為我們在依賴中加了,Spring Security,它配合了Spring Web,就會自動為所有api加入權限檢測。我們的測試中,沒有任何用戶登入,當然會出現 http 401。為了讓我們可以好好管理誰可以使用api,我們就來設定一定Security。 我們加一個WebSecurityConfig.java,暫時指定所有的訪問路徑都必需有USER權限,並且用 http basic的方式登入。 //src/main/java/io/github/macauyeah/springboot/tutorial/springbootwebapidata/config/WebSecurityConfig.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 securityFilterChain(HttpSecurity http) throws Exception { http.authorizeHttpRequests(authorizeHttpRequests -> { authorizeHttpRequests.requestMatchers("/**").hasRole("USER"); // 所有的訪問路徑都必需有USER權限 }); http.httpBasic(Customizer.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.withUsername("admin") .password(passwordEncoder().encode("pass")) .roles("USER").build(); // 我們在記憶中體,加入一個測試用的User,它的名字為admin,密碼為pass,權限為User return new InMemoryUserDetailsManager(user); } 然後加入新的測試,直接模擬Role。結果是通過的。 //src/test/java/io/github/macauyeah/springboot/tutorial/springbootwebapidata/controller/HomeControllerTest.java @Test void testLoginWithRoles() throws Exception { RequestBuilder requestBuilder = MockMvcRequestBuilders.get("/api/someRecord/1234") .contentType(MediaType.APPLICATION_JSON).with( SecurityMockMvcRequestPostProcessors.user("someone") .roles("USER", "ADMIN")); // 沒有使用密碼,只使用Role this.mockMvc.perform(requestBuilder) .andExpect(MockMvcResultMatchers.status().is2xxSuccessful()) .andExpect(MockMvcResultMatchers.jsonPath("$.ret").value("your uuid:1234")) .andDo(MockMvcResultHandlers.print()); } 再來一個測試,改用密碼登入,分別輸入錯的和正確的密碼。 @Test void testLoginWithWrongPasswordAndNoRole() throws Exception { RequestBuilder requestBuilder = MockMvcRequestBuilders.get("/api/someRecord/1234") .header("Authorization", "Basic randompass") // 輸入錯的密碼,應該回傳http 401 Unauthorized .contentType(MediaType.APPLICATION_JSON); this.mockMvc.perform(requestBuilder) .andExpect(MockMvcResultMatchers.status().is4xxClientError()) .andDo(MockMvcResultHandlers.print()); } @Test void testLoginWithPassword() throws Exception { RequestBuilder requestBuilder = MockMvcRequestBuilders.get("/api/someRecord/1234") .header("Authorization", "Basic YWRtaW46cGFzcw==") // http basic 就是把 admin:pass 轉成base64 .contentType(MediaType.APPLICATION_JSON); this.mockMvc.perform(requestBuilder) .andExpect(MockMvcResultMatchers.status().is2xxSuccessful()) .andExpect(MockMvcResultMatchers.jsonPath("$.ret").value("your uuid:1234")) .andDo(MockMvcResultHandlers.print()); } 最後,當然是正確的密碼才能通過。若果大家還是半信半疑,我們可以跑起真的正服務(IDE RUN或mvn spring-boot:run),然後用curl去試。 curl http://localhost:8080/api/someRecord/1234 // failed with 401 curl -u "admin:pass" http://localhost:8080/api/someRecord/1234 // 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.withUsername("admin") // .password(passwordEncoder().encode("pass")) // .roles("USER").build(); // return new InMemoryUserDetailsManager(user); // } } // spring-boot-tutorial/spring-boot-web-api-data/src/main/java/io/github/macauyeah/springboot/tutorial/springbootwebapidata/config/UserServiceImpl.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 loadUserByUsername(String username) throws UsernameNotFoundException { // 因為我們資料庫沒有資料,為了方便測試密碼的加密,我們在java code上直接插入一筆資料。 UserEntity defaultUser = new UserEntity(); defaultUser.setUsername("admin"); defaultUser.setPassword(passwordEncoder.encode("pass")); defaultUser.setRole("USER"); defaultUser.setUuid(UUID.randomUUID().toString()); userRepo.save(defaultUser); // 上述為測試用插入資料,不應該出現在正式使用環境中。 UserEntity user = userRepo.findOneByUsername(username) .orElseThrow(() -> new UsernameNotFoundException(username + " not found")); // 找找資料庫有沒有正在登入的該名使用者username List authorities = List.of(new SimpleGrantedAuthority("ROLE_" + user.getRole())); LOG.debug("got user uuid:{}, username:{}, role:{} from database", user.getUuid(), username, user.getRole()); // 如果前面的 findOneByUsername 有結果回傳,我們就給它一個ROLE_XXX的權限。 return new User(username, user.getPassword(), authorities); // 這裏從沒有檢查過密碼是否有匹配,全部交給Spring Security去做 } } //spring-boot-tutorial/spring-boot-web-api-data/src/main/java/io/github/macauyeah/springboot/tutorial/springbootwebapidata/entity/UserEntity.java // spring-boot-tutorial/spring-boot-web-api-data/src/main/java/io/github/macauyeah/springboot/tutorial/springbootwebapidata/repo/UserRepo.java 上述段落中,筆者省略了UserEntity和UserRepo,它們只是一般的spring-data-jpa概念,有需要可以經文末的連結查看完全原始碼。最需要注意的,是UserEntity的password欄位,在資料庫中是以加密的方式儲存。我們在配匹登入者與資料庫記錄時,也沒有自行檢驗密碼的需要。我們只是在加密過的密碼回傳給Spring Security,Spring框架會自行把登入者輸入的密碼與加密了的密碼作比較。

金麗華酒店新春推廣
澳城餐飲
LifeMag Editor・2017-01-17

為迎接丁酉雞年的來臨,金麗華酒店特備一連串賀歲節目與眾歡度喜氣洋洋的新歲,精彩節目將在大年初一上午十一時(一月二十八日)的隆隆炮竹聲及浩浩蕩蕩的醒獅伴隨下掀起序幕,除醒獅及武術的精彩表演外,財神爺更蒞臨各餐廳大派利是,濃厚的節日氣氛讓每一位賓客盡興而歸,來年行好運! 新春豐盛美食 除舊佈新,喜迎雞年!一月起金麗華酒店推出精選佳餚、特色禮物和傳統美點任君選擇!金麗軒中餐廳、薈景閣咖啡室、灆泰國餐廳及乘風廊現推出一系列過年特色美食 與您歡度新年: 春茗套餐 金麗軒中餐廳呈獻六款寓意吉祥的新年春茗套餐,每席澳門幣 3,888 元起。農曆新年期間金麗軒更敬備多款賀年菜譜及中式糕點,更特別推出歡送猴年優惠,由即日起至 2017年 1 月 25 日,凡農曆猴年出生的壽星惠顧金麗軒中餐廳晚市將享高達六五折優惠。 節日盛宴 沒甚麼能比得上於薈景閣咖啡室與家人朋友一同開懷大嚼,更有供應源源不絕的生猛海鮮,您怎可錯過? 半自助餐/自助餐 成人每位 澳門幣 268 起 |0-5 歲 – 免費 | 6-18 歲 – 半價 灆泰國餐廳 座立於度假村園林泳池旁的灆泰國餐廳於新年期間提供「羊肉美饌菜單」,讓您可於繁華的澳門當中細嘗泰式的特別賀年菜餚,同時欣賞四周園林美景。 乘風廊酒吧 同樣位於酒店二樓的乘風廊今年推出「新春下午茶套餐」,兩位用澳門幣 298 元,更有特調雞尾酒由澳門幣 98 元起,讓您與摯愛親朋渡過悠閒寫意的春節假期。 查詢及預訂請致電: +853 2856 7888 – 金麗華酒店 +853 8793 3821 – 金麗軒中餐廳 +853 8793 3871 – 薈景閣咖啡室 +853 8793 4818 – 灆泰國餐廳 +853 8793 3831 – 乘風廊酒吧 全新的「小童」定義 – 十八歲 金麗華酒店,這個唯一位於澳門市中心的豪華度假村酒店,成為全澳第一間將「小童」優惠界限提升至十八歲的酒店。現在,只要有一位以成人正價惠顧自助午或晚餐的客人陪同下,同行的小童只要未滿六歲即可免費進餐,而六歲至十八歲或以下的小童亦可獲半價優惠。此外,當您預訂含早餐的住宿套餐或住房客人以成人價享用自助早餐,同行的最多兩名十八歲或以下的小童可均可享免費待遇,更有免費加床服務。 關於澳門金麗華酒店 澳門,距離香港的不遠處,散發著中葡文化交匯地的攝人魅力!澳門金麗華酒店佔盡地理優勢,身處於商業、購物及娛樂中心,步行至港澳碼頭只需數分鐘,與連接中國的澳門關閘及澳門國際機場亦只需十分鐘車程。酒店薈萃東方及歐陸風情格調,包括 416 間豪華客房及套房、四間提供亞洲美味佳餚的餐廳、佔地一萬五千平方米的金麗華度假村,當中設有金麗華香薰美療中心和兒童中心,都是您伸展筋骨,享受寧靜舒適假期的世外桃園!

妳是否願意嫁給他, 命書裡面清楚寫了“不”
玄學星相
熊神進・2016-03-24

覆:嫚嫚姐 信件内容:(由于隐私问题,以下部份内容已被删除) 熊老师您好: 第一次给您写信还希望您能够在百忙之中抽出空闲给我回个信,我真心希望能够得到您的帮助和指导。 我叫xx,网名是,出生农历199x年x月xxxx,出生在xx省xxxxx,性别女,现居住在北京市xxxxx ,身份证号5116xxxxxxxxxx68 ,希望照片不要刊登 从小我妈妈就因为难产去世了,那年我才3岁,还不记事,记得之后我7岁那年我爸爸又再婚了就是现在的妈妈,日子过得不好不坏,虽然小时候总是挨打,但我也比较理解后妈难当,后来慢慢大了,十五六岁就辍学出来上班,那时我认识了朋友的哥哥,第一眼就喜欢了,紧接着就主动追求,我记得我们在一起的那天是2月8号,但我忘了是13年的2月8号还是12年的,那时在一起的时候我们算是异地恋,他在北京我在甘肃,后来也正好因为离家出走跟着朋友去了西安,因缘巧合中我和朋友找了一份工作是在保安公司做安检的在北京,于是我决定了去北京,顺便去找他…………………………….. 到了北京之后我在丰台区他在朝阳区,我们没有见面,中间有一段时间还分手了,原因是他不喜欢我,后面他居然又主动找我,问我过得好不好什么的,然后再网上跟我说他爸妈都知道了,觉得我们不在一起都不行了,然后我们就又在一起了,之后我们住在了一起,有一个无意中看见他的聊天记录,那是我第一次对他的印象和他这个人大打折扣,因为我发现他在跟我在一起的时候同时也和另外的一个女的在一起是他的同学,我当时质问他他也什么都不说就问我想怎么样,我说我能怎么样,我非常生气,但又不想分手,只好选择原谅……………………… 后面好几次发现他和他网上的那些女的聊天都特别暧昧,但每次我们也是除了吵还是吵,说分手他不同意,其实我心里也不愿意也不想,就这样从那次后我们的争吵变得越来越多,甚至每天都会吵架,我知道我们都很累,但那也是我最幸福的时候,那时候我们住的特别远 晚班我要10点才下班,等我下班去正好赶上最后一班地铁,但下地铁没有公交车回家,只有到公寓的班车,但是班车10点半就没有了,没办法后面他怕我没办法回家就买了一辆自行车,每天晚上到地铁口来接我,那时候是大冬天,北京的冬天特别冷,还下大雪,地上都是冰,他的手都冻得长冻疮了........................ 后面在上班的地方认识了一个同事是四川的,在他的推荐下我们搬家了 ,搬到了离我上班的地方很近的一个地下室,他很为我着想每次搬家都让搬去离我上班近的,而他自己上班却要一个多小时,次数越来越多我总是会发现他和他网上的那些女的聊得特别暧昧恶心,聊天的话我真是不想看也看不下去,我变得越来越敏感,猜忌越来越多,我让他把他QQ里面的女的全部删掉,他不想删我就自己删了,结果我后面发现他居然又重新申请了一个QQ号去加他们,还有他的前女友,说想她什么的,我看到以后简直是忍受不了打击,几乎崩溃,我只爱过他一个,可他却这么对我,我们吵架甚至打架,他爱喝酒,我讨厌他喝酒,有一次他动手打了我……………………………….. 我不敢相信口口声声说爱我的他居然喝醉酒动手打我,打完我又来道歉,我还是一次又一次的原谅了他,他对我动手不止一次两次,但我因为太爱他所以选择一次又一次的原谅他,有一次我和他家里人吵起来了,他什么都没说,当然他在她家里人面前从来没有说过我好的,都是他家里人说什么就是什么,我跟她提分手好几次他都不同意,我说分开住他也不同意,就这样浑浑噩噩我们在争吵中度过了一年多………………………………… 之后由于房子到期我们搬到了朝阳区那边,是个公寓,在那边我在网上加了几个群,群里面认识了一些朋友,他们人都挺不错,后面跟他们关系走得比较近,而我男朋友不准我和男的一起玩,所以有时候他上班不在家我出去跟他们玩也不敢告诉他,还是一样的日子我们天天争吵,他还是喝了酒就爱跟我动手,我总是爱跟我认识的那些朋友诉苦,其中有一个男的对我很好是一个台球厅的老板,他们都说他喜欢我,但他结婚了……………………… 那段时候我和他来往也比较勤密,有什么难过的事情都会跟他说,有一次晚上我男朋友喝醉了酒打了我喊他滚,他就出去了,我给那个男的打电话他从很远的地方打车来我家里接我,他说第二天他兄弟结婚,问我愿不愿意跟他一起过去他哥们儿那边,我去了,那晚,我们发生了关系…………………………….. 我不知道自己怎么想的,我有病,后面回去了我男朋友在家等我,问我去哪里了,他以为我是去我朋友家了,就没有多问,后面那男的对我越来越好,我开始以为我喜欢她,就跟我男朋友闹分手,我当时真是糊涂了,错把感谢当成喜欢…………………….. 有一天晚上那男的住在我家里了,我男朋友跟我吵完假出去了,一夜没有回来,第二天早上我男朋友回来开门我把门反锁了,他居然跑到天台上看我在不在家,从天台能看到我们屋里,因为我们屋没有窗帘,他看到我和那男的躺在床上,我想当时他应该是刺激不小,给我发信息说我偷人,然后打电话给他妈甚至我爸爸说,后面那男的走了以后他回来跪着求我别离开他,说他愿意不计前嫌原谅我,但我却鬼迷心窍了,死活不愿意,说我喜欢那男的要和他在一起,说他会离婚………………………… 我傻了,后面他也心灰意冷了,他打电话给我家里人,让我家里人把我带回四川去,说不让我在这边,我爸和我奶奶就打电话让我回去,我没办法我不想让我奶奶伤心就同意回去了,是他送我去的机场,从那以后我们好几个月没有见过面,中间也只联系过几次,后面我回北京了,我想了很多,发现自己的错误太深,深得都不知道如何弥补,我去找他,他说他有女朋友了,他女朋友很爱她,我当时哭得已经不像我自己了,心跟撕裂了般痛,我求他,让他别离开,别不要我,我说我知道错了,他却还是狠心离开了,就跟我当初离开他一样,我后面找到了工作,一直住在朋友家,后面住在了宿舍,去年圣诞节的时候他突然联系我说一起吃饭,我去了,我吃完饭看完电影他说送我回去,我说好,他在路上一直拉着我,我的心一上一下,说不清是什么滋味,到了我宿舍以后他说送我上去,我宿舍就我一个人住,他居然不走了,他抱着我,亲我,之后我们发生了关系………………………… 我以为他是因为爱我,所以在那之后我找他和好,他却不同意,我不知道为什么,那种情况好几次了,到现在为止都是,我问他为什么他总是说跟着感觉走,我们回家过年的时候那次本来我是27号的机票回北京,但由于我去晚了没有赶上飞机,想改签,近期也没有票,没办法只能又回家去,正好在路上他给我发信息约我吃饭,结果是把我骗过去介绍给他的同学们认识,我特别尴尬,尤其是在玩仍筛子的时候我扔到了一个说真心话他的同学们问我还喜不喜欢他,我一直没说,他的同学就说不说的话就喝三杯酒,我选了喝酒,但他却悄悄跟我说你就说喜欢吧,我听他的说了,那晚我们没有回家去的宾馆,第二天他回的北京那晚我问他说和好重新在一起,他说我是喜欢你,但是爱着就爱着没有必要在一起,他家里人也反对了,我特别难受不知道该怎么办……………………. 我想我知道我自己错了,我跟她在一起的时候,常常拿着镜子照他,却总是忘了照自己,忽略了他想要什么,而我该给他什么,我想跟她重新在一起忘掉过去,我不想错过,我也不想再花时间去另一个人身上...................... 求熊大师能够帮我化解我和他的这段矛盾让我们重新在一起,我不想失去她,我们虽然分手大半年了,但我知道他还是爱我的,我不想继续错下去。 望熊大师能够尽快给我方法,让我和他重修旧好忘掉过去的不堪。再次感谢大师。他的出生年月日是199x年x月xxxxxxx出生的 熊神进老师回答: 人是群體生活的動物, 在那社群中, 我們會用感覺把朋友分類, 例如某些是可以深交, 某些是泛泛之交, 妳生活在群體中, 本來妳的命運不會受七殺星侵占妳的桃花星, 可是食傷星太弱, 當食傷無力控制七殺星的時候, 妳就任性起來, 少少年齡, 什麼也不去學, 反而把青春賭明天, 從早到晚躲在男人的煩惱中。 世上有三種人, 一種是幫人解決麻煩的人, 一種是制造麻煩的人, 另一種是有了麻煩卻不懂解決的人, 你的煩惱不是上天給你, 是你自己在花季日子去找煩惱, 相反, 如果因為妳八字中的文昌星不閃亮而中途輟學, 這是遺憾, 我也承認, 但, 命運是掌握在強者手上, 人生可以容許自己一次的遺憾, 但遺憾並不是“想當然”的事。 如果貧窮是放棄讀書的理由, 我認為這個理由是沒有亮點, 它只是一個借口, 現今社會, 從石縫生長出來的奇葩多的是, 富裕只是為讀書人創造了一個良好條件, 但一個人能否成才, 還要很多條件來配合, 就像妳, 妳來到北京, 北京是務實的城市, 老百姓都是干實務, 愛打拼, 而妳有沒有受良好磁場鼓舞向上? 我認為妳要好好想想自己的未來, 並不是靠我的占卜結果來做人生方向盤, 我想跟妳說二句, 當大運見木星的時候, 妳會遇上一位智者, 智者是異性, 離婚, 年齡是你的1.5倍, 他關心妳, 給你鼓勵, 至於妳是否願意嫁給他, 命書裡面清楚寫了“不”。 命运是掌握在强者手上,并不是决定在玄学家口中,熊老师只是善心提点有缘人,ta应该积极面对人生,而不是消极逃避问题。熊老师已为有缘人关上命盘,并祝福她。

澳門凱旋軒金秋滋味大閘蟹
澳城餐飲
LifeMag Editor・2015-10-09

金秋的到來,意味著什麼?懂得享受美食的你,必然知道品嚐大閘蟹的時機已經來臨!凱旋軒精心呈獻秋季滋補大閘蟹,鮮嫩肉汁、膏香飽滿的蟹肉風味令人垂涎欲滴!適逢天氣轉涼,正是享受滋味蟹香的最佳時機,凱旋軒呈獻金秋大閘蟹宴及一系列豐富美味的滋補美饌,務求讓一眾蟹迷大飽口福!懂得享受美食的您請即邀約親朋戚友,共享滋味餐饕的喜悅! 凱旋軒金秋滋味大閘蟹宴,每席為澳門幣5288元(十二位用),半席為澳門幣2888元(六位用)。其中菜色包括:清蒸大閘蟹、菌香蜜豆炒磯燒鮑魚、古法太史五蛇羹、花尾龍躉兩味:菊花菜遠炒球及金菇粉絲香蒜蒸頭腩、蒜香醬燒雞、秘制枝竹黑羊腩煲、鹹魚茸炒芥蘭、生炒臘味糯米飯以及桂花燉雪梨滋潤您味蕾。 此外,凱旋軒亦提供大閘蟹風味及滋補套餐,您可選擇相約三五知己,靜靜地細味蟹香肉汁,享受金黃鮑滿的蟹膏。套餐分別為澳門幣538元(兩位用)及澳門幣1388元(四位用)。 大閘蟹風味套餐(兩位用) 精選大閘蟹 (四兩)古法太史五蛇羹蜜豆菌香炒鳳尾蝦杞子上湯浸時蔬臘味糙米炒飯桂花燉雪梨生果拼盤 大閘蟹滋補套餐(四位用) 精選大閘蟹 (四兩)古法太史五蛇羹荷芹炒斑球豉油皇海蝦秘制羊腩煲臘味糙米炒飯桂花燉雪梨生果拼盤  條款及細則: 所有價格以澳門幣計算,並需收取百分之十服務費; 優惠只適用於堂食; 不可與任何折扣優惠同時使用; 受條款及細則約束。 凱旋軒資訊: 營業時間: 星期一至五:早上11:00至下午3:00;下午6:00至晚上11:00 星期六及日:早上10:00至下午3:00;下午6:00至晚上11:00 訂座電話: (853) 8860 6128 地點: 澳門新口岸皇朝區城市日大馬路278號,澳門凱旋門酒店四樓凱旋軒 網址: www.larcmacau.com

【蔡司鏡頭加持】Nokia7 Plus 及 Nokia 6 !不可忽視的中階新機
手機‧電玩
Cheers!・2018-04-12

近年 Nokia 除了推出經典手機復刻版 3310 外,亦十分積極推出不同類別的手機。今次 Nokia 推出的 Nokia 7 Plus 及 Nokia 6 就主攻中階市場,想換平平哋又高質手機的你千祈咪錯過喇! Nokia 7 Plus 採用 6 吋 18:9 IPS屏幕,內建 Snapdragon 660 處理器,4GB RAM + 64GB ROM;背面採用鋁合金機殼並設有指紋識別器,而3,800mAh 的電池容量更可達 2 日電池續航力,十分強勁!顏色方面則有雅瓷黑及雪瓷白可供選擇。 當中最大賣點就是配備蔡司光學認證的前後三鏡頭,分別是 2 個主鏡頭及前置鏡頭,雙主鏡頭具備 1,200 萬象素廣角及 1,300 萬畫素長焦鏡頭,前置鏡頭則有 1,600 萬象素,而內置的 Pro Camera 強化手動模式有簡易的設定介面,可調整各個高級的拍攝設定。 而一同發表的新一代 Nokia 6 則換上新的設計,功能上面更加升級,處理器由 Snapdragon 430 升級至 Snapdragon 630,內置 4GB RAM + 64GB ROM 及採用一體成型鋁合金機身,而主鏡頭亦採用 1,600 萬象素蔡司光學認證鏡頭,前置鏡頭為 800 萬象素。電池容量為 3,000mAh,指紋識別器亦設在機身背後。Nokia 6 擁有夜霧黑及冷月銀兩色選擇。 <<出機小貼士>> 依家去 CTM 申請 4G+ 本地月費 $198 / 2GB,Nokia 7 Plus 上台機價 $680,New Nokia 6 上台機價 $0,仲免按金添!立即出機啦!

2018年7月星座運程
玄學星相
熊神進・2018-07-01

金牛座(太陽星座) 7月13號的日蝕及27號的月蝕對金牛座的影響很大,這是因為太陽是金牛座的家庭守護星,所以日蝕期間金牛座的家庭生活或家庭成員將經歷戲劇性的變化。父母或長輩將面對人生的十字路口,需要作出決定性的選擇。隱藏的家庭事或一直回避的痛楚在這段期間全部浮現,需要金牛座與家庭成員誠心地面對。 由於日蝕在金牛座的第三宮進行,金牛座的兄弟姐妹或手足同胞的日子都是過得馬馬虎虎的,他們的個人狀況或財務狀況都不太如意。 金牛座的駕駛人士,你的車輛容易損壞或壞車。手機或其他通訊系統,例如電腦、電郵、包裹、訊息等等都會受到不同程度的障礙。學生可能需要面對轉校、轉科目、轉變學習計畫等等。愛侶情緒不穩,如果兩人拌嘴吵架,請你多多包容不要再爭論下去,否則感情關係將越來越疏離。 27號的月蝕對你的兄弟姐妹個人發展、機械零件、通訊器材都產生干擾。月蝕在你的事業宮發生,工作上的遊戲規則會轉變,對人才的要求也會不同,工作空間的長輩或上司對你看法不太穩定,金牛座凡事小心,密切留意別人的眼神臉色,不要輕舉妄動。月蝕也影響火星,火星是你靈性宮的守護星, 因此月蝕會干擾你的思維及情緒,容易導致負面思想。 如有任何問題,歡迎聯絡: 起名、改名、玄學教學、講座、風水、超度、選日、放生等服務預約: 義工助理林小姐電話:13726267799(請晚8時後才致電聯絡她) 熊神進:澳門 853-66618785 Facebook: http://t.cn/h1sJwZ熊神進風水法器店-Master-Mickey-Hung-Fortune-Workshop-252635158482455/ 中國澳門風水掌相學會會長(政府註冊) 公共微信: macaumasterxiong 淘寶風水法器店:http://t.cn/RwZtztF

2018年7月星座運程
玄學星相
熊神進・2018-07-01

巨蟹座(太陽星座) 過去,巨蟹座對自我經濟狀況感覺良好,上月起,金星水星進入了金錢宮,這個月的22號,太陽也進入了第二宮,巨蟹座的經濟狀況越來越富足。巨蟹座會把金錢用在支援家人及改善生活質素上面。 金星在7月10號離開金錢宮, 剩下水星獨守第二宮,這個星象很適合巨蟹座進行買賣交易,從事銷售行業、市場策劃或者公關的巨蟹座更加能夠掌握客戶及市場的需要,透過演說講解及文字表達,就能把你的設計方案傳達,贏得大眾的歡心。從事投資行業的巨蟹座,娛樂事業、文藝工作等等相關的行業能夠讓你獲得豐厚的進帳。火星是你的事業守護星,火星迫使著巨蟹座努力開拓新的領域,增長知識見聞, 為你的事業發展打好基礎。 13號的日蝕和27號的月蝕期間許多事情都顛倒運行,但這正好符合巨蟹座的口味,巨蟹座能抱著好奇心探索新的領域。整體來說,日蝕及月蝕期間有利巨蟹座進行自我調整及認識自我。由於月蝕對火星造成影響,因此,巨蟹座的事業發展或許面對新的衝擊,但這同時也帶給巨蟹座新的工作機遇。 如有任何問題,歡迎聯絡: 起名、改名、玄學教學、講座、風水、超度、選日、放生等服務預約: 義工助理林小姐電話:13726267799(請晚8時後才致電聯絡她) 熊神進:澳門 853-66618785 Facebook: http://t.cn/h1sJwZ熊神進風水法器店-Master-Mickey-Hung-Fortune-Workshop-252635158482455/ 中國澳門風水掌相學會會長(政府註冊) 公共微信: macaumasterxiong 淘寶風水法器店:http://t.cn/RwZtztF

M仔日記 │ 首爾 韓牛蛋糕 三正家韓牛專門店
專題報導
MO560・2020-01-18

首爾三正家韓牛蛋糕 – 平民價錢 有趣體驗 聚會慶生好去處 #M仔日記 分享旅遊大小事 -------------------- 1. 簡介 喜歡吃牛肉的話,一定要來首爾的「三正家」慶祝生日!他們自家製的獨特菜式「韓牛蛋糕」,受多間電視台訪問,亦成為人氣生日派對場地!由6種不同部位的韓牛堆砌而成的蛋糕,外表更會砌成一個玫瑰花的樣子,最後再插上蠟燭,非常有趣! 「三正家」在韓國非常受本地人歡迎,無論是約會、聚會、慶生、吃飯都可以,餐廳內多以本地人為主,甚少遊客。小編本身亦是一名「牛魔王」,所以早前去首爾旅遊時亦特地去了一趟,體驗非常有趣、價錢便宜、食材高質,值得一試! 三正家韓牛蛋糕 預訂 – KLOOK 緊貼最新最潮澳門信用卡、飛行里數、旅遊資訊,記得讚好MO560的Facebook! 如想查看更多圖文詳情,請到MO560的網站查看。 -------------------- 2. 詳細介紹 2.1 位置 地址:首爾江西區江西路56街92韓文:서울 강서구 강서로56길 92 주영빌딩 地鐵:搭乘5號線(紫色)至「鉢山站」4號出口,步行8分鐘即可抵達。由弘大出發約需45分鐘;由名洞出發約需55分鐘。 地圖轉自KLOOK 緊貼最新最潮澳門信用卡、飛行里數、旅遊資訊,記得讚好MO560的Facebook! 如想查看更多圖文詳情,請到MO560的網站查看。 -------------------- 2.2 環境 店舖內空間不大,人很多,絕大部份都是本地人。環境非常乾淨,亦沒有太大的油煙味,整體算是舒適。而廚房採開放式設計,可以看到廚師們在準備韓牛蛋糕、以及其他韓牛菜式。 緊貼最新最潮澳門信用卡、飛行里數、旅遊資訊,記得讚好MO560的Facebook! 如想查看更多圖文詳情,請到MO560的網站查看。 -------------------- 2.3 食物 開始之前,會附上一顆維他命C的藥丸,小編當時滿頭問號XD。之後上網查了一下,原來是因為牛肉有豐富的鐵質,而維他命C可以幫助吸收鐵質。總而言之,一起進食就有好處啦。 在KLOOK上預訂會加送一份大醬湯,不得不說這個大醬湯真的非常具有韓國特色。而小編對大醬湯的感覺是「味道OK但不太喜歡」,主要是因為我只想吃韓牛! 小編點的是500g的韓牛蛋糕(2-3人份),2人吃感覺是OK的,牛肉當然是吃光光,而大醬湯則只喝了一半左右。 根據店家的說明,韓牛蛋糕是由胸腹肉、肩胛肉、肉眼、熟成牛、牛肋排、腹協肉,共6個部位組成。小編吃完之後,除了在蛋糕底部組成的部位是比較多油脂以外,老實說還真的吃不出每個部位之間的分別啊XD。 緊貼最新最潮澳門信用卡、飛行里數、旅遊資訊,記得讚好MO560的Facebook! 如想查看更多圖文詳情,請到MO560的網站查看。 -------------------- 2.4 價錢及預訂方法 小編非常推薦大家在KLOOK上預訂,除了價錢比較便宜之外,最重要是可以免除了溝通上和打電話預約的問題。500g(2-3人份)的韓牛蛋糕是HKD$800左右,700g(3-4人份)的話則是HKD$1000左右,額外加送大醬湯,並免除服務費。 預訂時需要提供用餐日期和時間,之後收到KLOOK確認訂單後代表KLOOK已經幫你安排好所有東西了!你只需要到時候準時出現在「三正家」就可以了,完全不用煩惱溝通、電話、預訂上的問題。 三正家韓牛蛋糕 預訂 – KLOOK 緊貼最新最潮澳門信用卡、飛行里數、旅遊資訊,記得讚好MO560的Facebook! 如想查看更多圖文詳情,請到MO560的網站查看。 -------------------- 3. 總結 韓牛本來就是一種高級的食材,能夠以這樣的價錢品嚐到亦算不錯。再加上以「韓牛蛋糕」形式出場相當有趣,而當時正值小編生日的前夕,整體更是印象深刻。 除此之外,店舖只有非常少量的遊客,客人都以韓國本地人為主,這樣就能猜測到它是一間相當地道的餐廳,並且受當地人歡迎,而去旅遊時更應多加體驗這種地道的餐廳嘛! 緊貼最新最潮澳門信用卡、飛行里數、旅遊資訊,記得讚好MO560的Facebook! 如想查看更多圖文詳情,請到MO560的網站查看。 -------------------- 喜歡小編的文章嗎?比個Like支持我啦 :) Facebook: MO560Instagram: mo560_travelWebsite: https://motravel.info 想追蹤最新最潮澳門信用卡、飛行里數、旅遊資訊?將MO560設定為 「搶先看/See First」!

劏房風水
宗教玄學
熊神進・2021-12-15

#八字中的財星# 一次跟幾位總裁開會, 他們問我香港特區的“Sub-divided flats”是怎麼一回事?“劏房”有沒有風水? 我啞然了, “Partitioned flats”。 “劏房”是本地粵語,這個名詞蘊藏有一些辛酸味,一個“劏”字,可圈可點, 可以理解成把一件東西分開, 亦可以說是被人屠宰。 “劏房”在官方媒體解釋是指在建築物原先經批准的圖則上顯示的一個樓宇單位,被分間成兩個或以上的獨立房間。 風水是不分貧富, 富的人, 找風水師傅看風水都是想愈來愈富, 窮人找風水師就是想轉運, 不想一世住劏房。有關劏房風水, 筆者的經歷集中在上環接近中環,或者銅鑼灣等一些高級劏房, 而且多是單身行政女性租住, 估計是方便上下班的需要。 首先我們先分析一下租客的八字財星, 按我的理解, 每個人的大運行10年, 小運行5年, 流年就1年, 從這些重要資訊, 我們就知道租客未來一年, 五年, 十年的經濟能力。 為什麼我要先分析租客的八字財星, 因為財星可以知道一個人未來財運情況。 風水學家有句說話“一物一太極”, 說的是地球上任何一地一角都有“風水”價值。在風水角度來說,普通的人疏忽風水, 就得不到風水的正能量, 同樣“劏房”的租客都有機會受風水益處改善財運。 風水上有句「陽宅三要門房灶」, “劏房”雖然面積細小, 但五臟俱全, 有房門, 有灶, 有馬桶, 有床, 什至有飯桌/書桌, 唯一沒有的, 就是“面子”。在中國香港, “劏房”已經標籤為“草根階層”的房子。 “劏房”屬於多門多戶多室的人群聚居地, 它跟”七十二家房客” 有點相似, 亦是一宅多居。無論怎樣, 看劏房的風水,先看租客的房門, 為什麼不看宅門的方向, 因為“劏房”是很多不同姓氏的人居住, 宅門的影響力就減弱。 筆者認為“劏房”必須看租客房門是不是開在財位,只要八字裡財星在未來1至10年出現, 財位在大門就是有用了, 因為每天出入都占財氣, 同時得到財神提攜。若果“劏房”房門開在破財位(2022年西方), 那就不好 ,財運事業大倒退。 我們今天說的是“劏房”房門風水,請大家要注意, 在租住劏房之前,最好知道劏房房門方位,因為“劏房”的戶門是走廊位置,沒有明堂位, 大多都不算好的,如果房門落在破財位,不好的事情就會發生。 如有任何問題,歡迎聯絡: 林小姐: 13726267799(晚8時後) 或加微信號 13726267799 熊神進:澳門 853-66618785 公共微信: macaumasterxiong 私人微信: macaumickey 淘寶風水法器店::http://t.cn/R212476 Facebook: 熊神進(澳門風水師) 中國澳門風水掌相學會會長(澳門政府註冊) 熊神進玄學信箱 https://goo.gl/jAVv8U