搜尋

搜尋結果

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

旅行上網沒難度 ~ 我的Pocket WiFi
走遍世界
蘇蘇・2015-01-01

每次在國內或國外公幹或旅行,蘇蘇都一定需要上網,除了可以上載照片去社交網站跟大家即時分享當地美食、美景、新奇事物、甚至酒店環境之外,還有可以利用手機地圖或導航功能尋找目的地,對蘇蘇來說更重要的是可以隨時跟澳門的家人緊密聯系,因為我家大小姐和大少爺還是需要我的協助,所以每次出外一到達目的地蘇蘇第一時間不是去找車子,而是去買當地可以上網的電話卡 不過從去年開始,蘇蘇每次出外就不用那麼頻樸了,當車子進入目的地境內或飛機降落之後,蘇蘇就可以優游自在的從口袋裡拿出一隻蛋,不是吃的那種蛋,也不是小孩子玩的扭蛋,更不是暖蛋,而是一隻WiFi 蛋,按著它就可以隨時隨地輕鬆流動上網啦。 其實它的正確名字叫 Pocket WiFi,蘇蘇選用的是來自香港易訊數據 esondata 的。 究竟 Pocket WiFi 是甚麼 Pocket WiFi 是一部接收發送流動數據的裝置,只要你的手機,平板電腦抑或手提電腦支援 WiFi 功能,都可接收其 WiFi 訊號就可以輕鬆上網。易訊數據的可同時連接最多五部電話、平板電腦或手提電腦共用。 另外使用 Pocket WiFi 最大的好處就是你的手機仍可保留使用自己的SIM咭,與親友保持聯繫。 用法十分簡單,按著按扭搜尋Wifi 後再輸入密碼就可以了,還是害怕不懂用,每次租用易訊的 WiFi 蛋都會隨機附上使用指南,如果你說連指南都不懂看,那我就幫不到你啦 它體積細小,擕帶方便,用法簡單,充一次電大約可使用68小時,如果中途電源快要用盡時,跟手機一樣接駁外置充電器就可繼續使用啦。 澳門的朋友一定會問,我在澳門,這公司在香港,莫非要我坐船往香港辦租用手續 現在交通運輸和物流那麼方便,怕什麼呢 無論在香港抑或澳門,在網上完成租用手續之後,易訊就會派速遞公司在辦公時間內、你出發之前連同充電插頭送到你手上啦。 近年蘇蘇無論返國內抑或出國公幹旅行,都有它相伴在旁,為我打開了網絡數據方便之門,特別在國內,竟然也可以上facebook, youtube,Yahoo 等網站,所以受到不少明星名人歡迎,如數個朋友一同旅遊時租用成本更低,比買電話卡更方便更便宜。 不過每個地方收費都不同,大家租用前要請先了解清楚收費項目及用量事宜啊,不過一般價錢都不高的,這個易訊數據的 Pocket WiFi 好幫手,經過自己及朋友親身測試,發現上網速度快而穩定,無論在國內、台灣、歐洲、加拿大都很順暢,現在公幹或旅行需要上網,帶這個是常識吧 易訊數據Pocket Wifi 詳情 www.esondata.com

12月 9 日至 12 月15 日一周生肖運程
玄學星相
熊神進・2019-12-08

#鼠生肖運程# 【發之前,永遠是夢想;上路之後,永遠是挑戰】 今個星期會收到戀人給你甜蜜的祝福,心裡會特別歡心。在投資方面你會比較穩重,不會輕易去碰那些抓不住的項目,穩穩的看牢錢財,或許不會一下子獲得很多收入,但起碼賺錢賺的比較安心。你的才華、才能也會備受肯定,你也會發現很多事情,只要你站出去就可以吸睛,讓事情更容易成功。幸運數字:9 12月 9 日至 12 月15 日一周生肖運程 #牛生肖運程# 【態度決定一切。細節決定成敗,習慣成就人生】 正在追求的物件會被你的真誠所打動,可要乘勝追擊了;學習上太過鬆懈可不是一件好事,很容易就被別人超越;獨自去咖啡廳坐坐吧,一個人也可以過得很愜意。打算耶誕節出遠門的朋友, 本周會有抽獎機會, 你自己好好珍惜這次抽獎, 盡可能在抽獎的時候穿紅色衣服, 這是你的幸運顏色。 12月 9 日至 12 月15 日一周生肖運程 #虎生肖運程# 【凡是自強不息者,最終都會成功】 今個星期遇ldquo;天德rdquo;吉星庇護,你布貴心相助。單身者熱情洋溢的表現,易引來異性的關注,不經意間的回眸就能發現身邊人投來的電波,試著接觸對方會有意想不到的收穫。已婚者容易對另一半產生審美疲勞,應加強溝通。財運不錯,耶誕節快來, 為自己添置新行頭時有機會獲得商場回贈的禮物! 12月 9 日至 12 月15 日一周生肖運程 #兔生肖運程# 【別害怕別人怎麼看你,因為沒有人在看你】 今個星期會出現不錯的發展良機,應加以把握,工作會迎來好的局面,自身的努力加上貴人的幫助,能取得理想的成績。精神與活力不僅充沛甚至還多餘了呢, 可以去寺廟做義工, 不過這樣的精神狀況讓你顯得有些躁動, 將力量多放在工作或社團活動上吧,可別錯用在衝動或縱情遊樂的行為上。幸運方位:西南偏西向、東南偏南向 吉時吉色:pm700800 12月 9 日至 12 月15 日一周生肖運程 #龍生肖運程# 【聰明的人看得懂,精明的人看得准,高明的人看得遠】 今個星期的氣氛可能不會太好,不少人會發生爭吵,對於更多人而言則是想逃避出這個讓人窒息的氣氛,焦慮是難以避免的,但並非不能克服。事情不多,是非多,工作之餘還是不要紮堆在那裡東家長西家短的。多管閒事,反而會因他人的事引起你們之間發生爭吵,別去做吃力不討好的事情;財運平平,一切只需靜觀其變。 12月 9 日至 12 月15 日一周生肖運程 #蛇生肖運程# 【在哪裡跌倒,就在哪裡躺下來】 12月 9 日至 12 月15 日一周生肖運程 今個星期的你,心情可謂是春光明媚,燦爛的笑容對異性很有殺傷力,但也要時時提防爛桃花哦;財運很旺,微笑待人,獲得意外之財的機率很大;工作上,不斷接到新任務,但不乏他人的幫助。懷孕的機會很高,你有準備生小孩嗎?有機會懷上貴子。總的來說,今個星期你處於開心自在的狀態。 #馬生肖運程# 【生活有朝氣活得暢暢快快工作講求效率做得踏踏實實 】 這個星期遇到了子水,運勢欠佳,要防範有小人加害,工作或事業可能會出現一些變動,切記做事要踏踏實實,不要好高騖遠,凡事以小心謹慎為上,以靜制動,不要招惹是非,感情方面容易發生矛盾,夫妻同床異夢,健康上宜注意有疾病發生。開運方位:正南方向 12月 9 日至 12 月15 日一周生肖運程 #羊生肖運程# 【不登高山,不知天之高也;不臨深溪,不知地之厚也】 今個星期工作上要接受別人的意見,讓自己去理解對方的出發點;單身的你,要弄清楚和對方的明確關係,不要稀裡糊塗;有伴的你,下班的時候給對方做一頓豐盛的晚餐;財運方面,不好不壞,入帳不少,支出也多。總的來說,今個星期是充滿變動又會有很多小驚喜的日子。今個星期對屬羊人是一個大的轉機,懷才不遇的屬羊人可以得到他人賞識,但是也需要自己好好把握機會才會有大的進步。 12月 9 日至 12 月15 日一周生肖運程 #猴生肖運程# 【人生如白駒過隙死不足恨但夙心往志,不聞於末世矣】 戀愛上因為過於在意對方的反應,反而讓人心生不安。唯恐你出現過度的反應,約會時讓對方有一點點自由感還是很重要的。星期二的早晨不妨讓自己先有點慵懶情緒的開始,培養好元氣後發展成忙碌的結束。與父母間容易有生疏感,多是因為工作繁忙或在外發展,較少有機會與父母相聚,情感交流減少。幸運數字與尾數:6。 本周最吉顏色:紅色 黃色 12月 9 日至 12 月15 日一周生肖運程 #雞生肖運程# 【人生最大的喜悅是每個人都說你做不到,你卻完成它了】 今個星期得貴人扶助,凡事稱心如意,學業有進步,但須戒驕戒躁,不可恃才而傲。已婚的夫妻之間也相處和諧,很少有爭執發生,相敬如賓的關係讓夫妻雙方都感到婚姻的幸福,即便生活略微平淡,但你的幸福感感十足。不管前路你將遇到什麼東西,都是值得你珍惜的。那是你你自己爭取來的 開運方位:正南方向。 12月 9 日至 12 月15 日一周生肖運程 #狗生肖運程# 【因為年輕我們一無所有,也正因為年輕我們將擁有一切】 本周運勢時來運轉,在事業上將迎來大好的發展良機,宜好好把握時機,同時本月傷官生財,財運亨通,可適當進行投資,多可獲利,經商者宜放心投資,感情方面也易出現桃花運,單身的人士異性緣都不錯。另外,如果你收到兄弟姐妹的電話,不要驚訝,期待消息吧。幸運數字:9 12月 9 日至 12 月15 日一周生肖運程 #豬生肖運程# 【一個有信念者所開發出的力量,大於九十九個只有興趣者】 感情上可能會有些不愉快的事情發生。而已有伴侶的你在與另一半的相處還算愉快。但在過程中總是會有些吵鬧的聲音,彼此間的小型口舌是非不斷。雖然這些對於雙方的感情影響並不大,但也總是件心煩的事情。單身者多參加聚會,可提升桃花運。工作學習上,你小心翼翼的做事方式讓你平穩地走過來,而且還有望贏得領導老師的肯定,或會被委以重任。 如有任何問題,歡迎聯絡: 林小姐 13726267799晚8時後 或加微信號 13726267799 熊神進:澳門 85366618785 公共微信 macaumasterxiong 私人微信 macaumickey 淘寶風水法器店:httpmacauhung.taobao.com Facwbook 熊神進澳門風水師 中國澳門風水掌相學會會長(澳門政府註冊) 熊神進玄學信箱 httpsgoo.gljAVv8U

韓亞航空飛美國來回連稅HKD3,698起!
激安優惠
OHChance 旅遊誌・2018-06-20

韓亞航空目前有隻美國航線優惠,比較值得看是美東的紐約,4000出頭真係唔錯,美西因為國泰、港航、聯航等直航經常都殺到九彩所以相對無咁吸引,另外夏威夷都可以看看。  《優惠價錢(來回連稅)》*三藩市洛杉磯西雅圖:HKD3,698*紐約芝加哥:HKD4,298*夏威夷檀香山:HKD3,798 以上航點均需經首爾仁川轉機。  《出發日期及最長停留》.出發日期:9月11日至2019年3月29日.最長停留:6個月  《購票日期及方法》.購票日期:6月30日2359前預訂.購票日期:至韓亞航空官網.預訂網址:httpea.flyasiana.comCzhmain.do  【輔助訊息】.此優惠可不同點來回,但不能中停首爾;.韓亞航空美加線票價已包機上餐飲及2年各23KG托運行李額;.韓亞航空可以乘搭機場船直接由澳門到香港機場海天客運碼頭 checkin 並獲退HKD120 香港離境稅。.美國簽證申請經驗:httpohnote.ohchance.infousavisa  附註:上述最低價錢為航空公司公告之最優惠價格,或本站能找到的最低價格;每一航班有否優惠票價及所存票量由航空公司決定,優惠票量有限售完即止。  價錢 Sample ndash; 香港經首爾飛美國航點優惠價格 ===== 想搵平機票去玩,即上 OH!Chance!澳燦旅行資訊 httpohchance.info 去日本旅行買咩 JR Pass好?唔知間航空公司好唔好坐?即上 OH!Note!小燦的旅行筆記做功課 httpohnote.ohchance.info 睇埋 Facebook 專頁 httpsfb.comohchance 第一時間獲得最新旅遊資訊!

澳門曉角黑盒劇場《肺人》觀後感
文化創意
蘇蘇・2015-01-01

早前收到由澳門曉角話劇研進社主辦及製作,澳門文化局贊助的LONG RUN劇場之《肺人》的觀賞邀請,剛從沙巴回來的蘇蘇,其實已經在朋友口中聽說這是一齣甚有水準的舞台劇,所以立即麻煩劇團幫我安排位置看closing。 演出地點是位於澳門中區的舊法院大樓實驗性black box 黑盒劇場,一個地理位置非常理想的地方。 其實《肺人》是曉角 LongRun 劇場系列之一,公演以來好評如潮,劇本來自英國的鄧肯・麥克米倫,曾於2011年獲華盛頓海倫・海斯奬最佳劇本以及2012年獲英國戲劇奬最佳劇本提名,原著英文劇本優秀但於中國人的地方公演也需要一個有想法的翻譯作者,無疑李盈盈為這齣劇的廣東話翻譯真是做得很好,這是兩岸四地首次搬演的中文版本。 故事描述一對現代年輕情侶同居多年,男人事事隨緣、女人滿口理據,終日為了是否結婚 是否生小孩的問題而吵吵鬧鬧。女方經常以全球暖化、社會公義、獨立思考等概念問題與男方爭拗,然而當事實擺在眼前時,總是被生活瑣碎以及個人情感所打敗,這些都是大多數人所活脫脫面對的存在於現實生活當中,實在有點唏噓hellip; 無論你是單身抑或已有伴侶,都可以在劇裡找到兩性關係的共鳴,看罷再一次感到人生雖然並不完美,但如果我們有足夠勇氣和衝勁向人生一個又一個的階段邁進,其實還有很多值得讓我們發掘、讓我們去感受的地方。 女主角在妥協之後有一段對白蘇蘇印象是非常深刻的,大意是 我們要想一想如何為人父母,我們要一起變老、一起回望、一起笑看我們曾遭遇過的事,因為在那個時候我們的生命已經踏進另一個階段了。。。 這些都是多少女人所期待的,大部份女人比較易生矛盾,需要有一伴侶溫柔的伴著她一起走上人生這條漫長的路,如果在這一生中可以找到一個可信賴和依靠的男人,是一件多麼幸福的事。 特別喜歡在劇中處理時間的巧妙變化,從二人相愛、相分、重逢、結婚、生兒育女直到老死,台詞簡單直接有追看性,看見導演譚智泉處理手法非常聰明,兩位演員梁建婷和曾韋迪表現出色有驚喜,梁將一個有堅持但矛盾的女人發揮得淋離盡致,而曾則將一個普通男人的角色的精髓得到觀眾的認同。 《肺人》在12月時已經公演了10場,由於反應熱烈,口碑載譽,劇團在完場後公佈決定於1月6日至8日晚上8時加開三場,為澳門舞台劇歷史劃下了新的一頁,未看的朋友,蘇蘇強烈推介。 有一件事蘇蘇很想分享一下,是次演出場地是位於澳門舊法院大樓改建的黑盒劇場,地段方便,場地理想,個人認為是澳門近年最好的改建,希望政府繼續大力支持澳門劇壇,保留此舊建築物留給澳門的劇團繼續使用,蘇蘇相信一定可以大大加深了觀眾入場劇觀賞的意慾,從而提升本地居民的文化氣質及地區文化形象。 看完舞台劇,跟曉角藝術總監許國權大鳥、導演譚智泉、演員梁建婷和曾韋迪合照是少不免的了 今次與蘇蘇同行的是馬來西亞專業劇團 ehouse 行政總監Suzuki Cheng ,同場我們還遇上澳門全能藝人好友李俊傑Jacky,真是有緣千里能相撞呀! 詳細資料 LongRun 劇場系列 《肺人》一個成年人可笑的決定 劇作家:鄧肯・麥克米倫(英國)導演:譚智泉主演:梁建婷、曾韋迪 不如生個BB?依家個地球變成咁,都係再考慮下先啦! 不如試多次?生個BB會排放一萬噸二氧化碳,係巴黎鐵塔嘅重量! 到底生唔生佢落黎好?個世界搞成咁,會唔會害左個BB啊? 先唔好講啲咩野全球化問題,我問你一句:你,愛唔愛我? *本劇含不雅用語,十三歲以下不得進場 加場演出日期:2015年1月68日晚上八時演出地點:澳門舊法院大樓黑盒劇場票價:MOP 120售票地點:廣星售票網