SlideShare a Scribd company logo
1 of 24
Download to read offline
There and back again
   A story of a simple HTTP request
Whoami
●
    Colin Harrington
    ●
        colin.harrington@objectpartners.com
    ●
        @ColinHarrington
Setup
●
    Tomcat 6.0.32

●
    Grails 1.3.7

    ●
        Spring 3.0.5

    ●
        Spring Security 3.0.4

    ●
        Sitemesh 2.4

    ●
        Hibernate ..
Detail / Source
●   http://tomcat.apache.org/download-60.cgi
●   CATALINA_OPTS="-Xdebug
    -Xrunjdwp:transport=dt_socket,address=8000,server=y,s
    uspend=n"

●   git clone git://git.springsource.org/spring-
    security/spring-security.git
●   git checkout 3.0.4.RELEASE

●   svn co https://src.springframework.org/svn/spring-
    framework/tags/spring-framework-3.0.5.RELEASE/

●   git clone git://github.com/sitemesh/sitemesh2.git
●   git checkout 9e97e40cf059b486567ef170ecac2ab01ea17bab
    (version 2.4)
Tomcat Valves
Tomcat Valve Examples
●
    org.apache.catalina.core.StandardEngineValve
●
    org.apache.catalina.valves.ErrorReportValve
●
    org.apache.catalina.core.StandardHostValve
●
    org.apache.catalina.core.StandardContextValve
●
    org.apache.catalina.core.StandardWrapperValve
ApplicationFilterChain
●   charEncodingFilter
●   hiddenHttpMethod
●   grailsWebRequest
●   SpringSecurityFilterChain
    (configurable via the plugin)
      –   Virtual Filter Chain
●   sitemesh (GrailsPageFilter)
●   urlMapping
ApplicationFilterChain
●   SpringSecurityFilterChain
    (configurable via the plugin)
      –   SecurityContextPersistenceFilter
      –   MutableLogoutFilter
      –   RequestHolderAuthenticationFilter
      –   SecurityContextHolderAwareRequestFilter
      –   RememberMeAuthenticationFilter
      –   AnonymousAuthenticationFilter
      –   ExceptionTranslationFilter
      –   FilterSecurityInterceptor (annotation,
          rules, etc.)
Application Dispatch
●   GrailsDispatcherServlet
●   ModelAndView
●   CompositeInterceptor
    ●   Filters!
        –   preHandle
        –   postHandle
        –   afterCompletion
●   SimpleGrailsController
Application Dispatch
●   GrailsDispatcherServlet
●   SimpleGrailsController
●   Conventions
    ●   Services
    ●   Hibernate / GORM
    ●   Etc.
Views & layout
● GroovyPagesServlet
● Resolving Views

  ● DispatchServlet

  ● GrailsViewResolver

● GrailsPageView

● Sitemesh Processing
Thank you
Credits
●   http://community.imaginefx.com/forums/storage/41/106334/3%20trolls.jpg
●   http://ctsling.com/Photos/chain/chain%201.jpg
●   http://image.made­in­china.com/2f0j00ZevTWYqGHtVA/API­Casting­Globe­Valve.jpg
●   http://en.wikipedia.org/wiki/File:Tomcat­logo.svg
●   http://4.bp.blogspot.com/­9ix7IiU1zPs/TdvYzKZiiQI/AAAAAAAADsI/q3C5kohTVKw/s1600/24gollumededlfeldt.jpg
●   http://the­hobbitmovie.com/wp­content/uploads/2010/12/hobbit­map.jpg
●   http://www.gamereplays.org/community/uploads/post­64773­1179078881.jpg
●   http://cdn2.screenjunkies.com/wp­content/uploads/images/2010/LOTR%2520Gandalf%25204.jpg
●   http://images.wikia.com/childrensbooks/images/6/6e/One_Ring.png
●   http://www.comingsoon.net/nextraimages/hobbitdwarveslarge.jpg
●   http://static.tumblr.com/elmigy1/Npylfcz3n/the­hobbit.jpg
●   http://this­world­is.boldlygoingnowhere.org/andinet/wordpress/wp­content/gallery/smaug/smaug­2.jpg
●   http://img­fan.theonering.net/rolozo/images/baker/sting.jpg
●   http://www.theonering.com/images2­404/SamandShelob
●   http://www.lotrmmorpg.com/maps/rivendale.jpg
●   https://www.buybunn.com/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/p/a/paper_filters_1.jpg
●   http://www.thespecialistsltd.com/files/Retro_Dispatch_Radio.jpg
●   http://world­the.com/wp­content/uploads/2011/07/View­From­Diamond­Head­Oahu­Hawaii.jpg

More Related Content

What's hot

(Even more) Rapid App Development with RubyMotion
(Even more) Rapid App Development with RubyMotion(Even more) Rapid App Development with RubyMotion
(Even more) Rapid App Development with RubyMotionStefan Haflidason
 
ATG Advanced Profile Management
ATG Advanced Profile ManagementATG Advanced Profile Management
ATG Advanced Profile ManagementKate Semizhon
 
톰캣 #09-쓰레드
톰캣 #09-쓰레드톰캣 #09-쓰레드
톰캣 #09-쓰레드GyuSeok Lee
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to GitJohn Ombagi
 
Automating web site deployment
Automating web site deploymentAutomating web site deployment
Automating web site deploymentGareth Rushgrove
 
Monitoramento com ELK - Elasticsearch - Logstash - Kibana
Monitoramento com ELK - Elasticsearch - Logstash - KibanaMonitoramento com ELK - Elasticsearch - Logstash - Kibana
Monitoramento com ELK - Elasticsearch - Logstash - KibanaWaldemar Neto
 
Security Checkpoints in Agile SDLC
Security Checkpoints in Agile SDLCSecurity Checkpoints in Agile SDLC
Security Checkpoints in Agile SDLCRahul Raghavan
 
Monitoring at scale: Migrating to Prometheus at Fastly
Monitoring at scale: Migrating to Prometheus at FastlyMonitoring at scale: Migrating to Prometheus at Fastly
Monitoring at scale: Migrating to Prometheus at FastlyMarcus Barczak
 
Advanced cache invalidation
Advanced cache invalidationAdvanced cache invalidation
Advanced cache invalidationPer Buer
 
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema RubyTdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema RubyFabio Akita
 
GDG Devfest 2019 - Build go kit microservices at kubernetes with ease
GDG Devfest 2019 - Build go kit microservices at kubernetes with easeGDG Devfest 2019 - Build go kit microservices at kubernetes with ease
GDG Devfest 2019 - Build go kit microservices at kubernetes with easeKAI CHU CHUNG
 
Analyse OpenLDAP logs with ELK
Analyse OpenLDAP logs with ELKAnalyse OpenLDAP logs with ELK
Analyse OpenLDAP logs with ELKClément OUDOT
 
Introducing Revel
Introducing RevelIntroducing Revel
Introducing RevelZhebr
 
第1回名古屋Grails/Groogy勉強会「Grailsを始めてみよう!」
第1回名古屋Grails/Groogy勉強会「Grailsを始めてみよう!」第1回名古屋Grails/Groogy勉強会「Grailsを始めてみよう!」
第1回名古屋Grails/Groogy勉強会「Grailsを始めてみよう!」Tsuyoshi Yamamoto
 
Running MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on KubernetesRunning MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on KubernetesAriel Jatib
 
Paris Monitoring meetup #1 - Zabbix at BlaBlaCar
Paris Monitoring meetup #1 - Zabbix at BlaBlaCarParis Monitoring meetup #1 - Zabbix at BlaBlaCar
Paris Monitoring meetup #1 - Zabbix at BlaBlaCarJean Baptiste Favre
 
Introduction to Neo4j APOC
Introduction to Neo4j APOCIntroduction to Neo4j APOC
Introduction to Neo4j APOCKnoldus Inc.
 

What's hot (20)

(Even more) Rapid App Development with RubyMotion
(Even more) Rapid App Development with RubyMotion(Even more) Rapid App Development with RubyMotion
(Even more) Rapid App Development with RubyMotion
 
ATG Advanced Profile Management
ATG Advanced Profile ManagementATG Advanced Profile Management
ATG Advanced Profile Management
 
톰캣 #09-쓰레드
톰캣 #09-쓰레드톰캣 #09-쓰레드
톰캣 #09-쓰레드
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Automating web site deployment
Automating web site deploymentAutomating web site deployment
Automating web site deployment
 
Monitoramento com ELK - Elasticsearch - Logstash - Kibana
Monitoramento com ELK - Elasticsearch - Logstash - KibanaMonitoramento com ELK - Elasticsearch - Logstash - Kibana
Monitoramento com ELK - Elasticsearch - Logstash - Kibana
 
Security Checkpoints in Agile SDLC
Security Checkpoints in Agile SDLCSecurity Checkpoints in Agile SDLC
Security Checkpoints in Agile SDLC
 
Monitoring at scale: Migrating to Prometheus at Fastly
Monitoring at scale: Migrating to Prometheus at FastlyMonitoring at scale: Migrating to Prometheus at Fastly
Monitoring at scale: Migrating to Prometheus at Fastly
 
Puppet Data Mining
Puppet Data MiningPuppet Data Mining
Puppet Data Mining
 
Advanced cache invalidation
Advanced cache invalidationAdvanced cache invalidation
Advanced cache invalidation
 
Tdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema RubyTdc 2013 - Ecossistema Ruby
Tdc 2013 - Ecossistema Ruby
 
GDG Devfest 2019 - Build go kit microservices at kubernetes with ease
GDG Devfest 2019 - Build go kit microservices at kubernetes with easeGDG Devfest 2019 - Build go kit microservices at kubernetes with ease
GDG Devfest 2019 - Build go kit microservices at kubernetes with ease
 
Backend frx for movmi
Backend frx for movmiBackend frx for movmi
Backend frx for movmi
 
Asm.js introduction
Asm.js introductionAsm.js introduction
Asm.js introduction
 
Analyse OpenLDAP logs with ELK
Analyse OpenLDAP logs with ELKAnalyse OpenLDAP logs with ELK
Analyse OpenLDAP logs with ELK
 
Introducing Revel
Introducing RevelIntroducing Revel
Introducing Revel
 
第1回名古屋Grails/Groogy勉強会「Grailsを始めてみよう!」
第1回名古屋Grails/Groogy勉強会「Grailsを始めてみよう!」第1回名古屋Grails/Groogy勉強会「Grailsを始めてみよう!」
第1回名古屋Grails/Groogy勉強会「Grailsを始めてみよう!」
 
Running MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on KubernetesRunning MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on Kubernetes
 
Paris Monitoring meetup #1 - Zabbix at BlaBlaCar
Paris Monitoring meetup #1 - Zabbix at BlaBlaCarParis Monitoring meetup #1 - Zabbix at BlaBlaCar
Paris Monitoring meetup #1 - Zabbix at BlaBlaCar
 
Introduction to Neo4j APOC
Introduction to Neo4j APOCIntroduction to Neo4j APOC
Introduction to Neo4j APOC
 

Similar to There and back again: A story of a s

Integrating ChatGPT with Apache Airflow
Integrating ChatGPT with Apache AirflowIntegrating ChatGPT with Apache Airflow
Integrating ChatGPT with Apache AirflowTatiana Al-Chueyr
 
Apache httpd reverse proxy and Tomcat
Apache httpd reverse proxy and TomcatApache httpd reverse proxy and Tomcat
Apache httpd reverse proxy and TomcatJean-Frederic Clere
 
Hacking the Grails Spring Security 2.0 Plugin
Hacking the Grails Spring Security 2.0 PluginHacking the Grails Spring Security 2.0 Plugin
Hacking the Grails Spring Security 2.0 PluginBurt Beckwith
 
PLNOG 4: Leszek Urbański - A modern HTTP accelerator for content providers
PLNOG 4: Leszek Urbański - A modern HTTP accelerator for content providersPLNOG 4: Leszek Urbański - A modern HTTP accelerator for content providers
PLNOG 4: Leszek Urbański - A modern HTTP accelerator for content providersPROIDEA
 
vdocuments.site_nginx-essential.pdf
vdocuments.site_nginx-essential.pdfvdocuments.site_nginx-essential.pdf
vdocuments.site_nginx-essential.pdfcrezzcrezz
 
Website Performance Basics
Website Performance BasicsWebsite Performance Basics
Website Performance Basicsgeku
 
手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務Mu Chun Wang
 
Connecting to Web Services on Android
Connecting to Web Services on AndroidConnecting to Web Services on Android
Connecting to Web Services on Androidsullis
 
Web Standards Support in WebKit
Web Standards Support in WebKitWeb Standards Support in WebKit
Web Standards Support in WebKitJoone Hur
 
Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011Tatsuhiko Miyagawa
 
Openshift: Deployments for the rest of us
Openshift: Deployments for the rest of usOpenshift: Deployments for the rest of us
Openshift: Deployments for the rest of usAnurag Patel
 
Managing and Visualizing your Replication Topologies with Orchestrator
Managing and Visualizing your Replication Topologies with OrchestratorManaging and Visualizing your Replication Topologies with Orchestrator
Managing and Visualizing your Replication Topologies with OrchestratorShlomi Noach
 
Replacing Squid with ATS
Replacing Squid with ATSReplacing Squid with ATS
Replacing Squid with ATSKit Chan
 
Svn to-git
Svn to-gitSvn to-git
Svn to-gitjwausle
 
Weavework Flagger Demo- AWS Container Day 2019 Barcelona
Weavework Flagger Demo- AWS Container Day 2019 BarcelonaWeavework Flagger Demo- AWS Container Day 2019 Barcelona
Weavework Flagger Demo- AWS Container Day 2019 BarcelonaAmazon Web Services
 
如何透過 Go-kit 快速搭建微服務架構應用程式實戰
如何透過 Go-kit 快速搭建微服務架構應用程式實戰如何透過 Go-kit 快速搭建微服務架構應用程式實戰
如何透過 Go-kit 快速搭建微服務架構應用程式實戰KAI CHU CHUNG
 

Similar to There and back again: A story of a s (20)

Integrating ChatGPT with Apache Airflow
Integrating ChatGPT with Apache AirflowIntegrating ChatGPT with Apache Airflow
Integrating ChatGPT with Apache Airflow
 
Apache httpd reverse proxy and Tomcat
Apache httpd reverse proxy and TomcatApache httpd reverse proxy and Tomcat
Apache httpd reverse proxy and Tomcat
 
Hacking the Grails Spring Security 2.0 Plugin
Hacking the Grails Spring Security 2.0 PluginHacking the Grails Spring Security 2.0 Plugin
Hacking the Grails Spring Security 2.0 Plugin
 
PLNOG 4: Leszek Urbański - A modern HTTP accelerator for content providers
PLNOG 4: Leszek Urbański - A modern HTTP accelerator for content providersPLNOG 4: Leszek Urbański - A modern HTTP accelerator for content providers
PLNOG 4: Leszek Urbański - A modern HTTP accelerator for content providers
 
Skyfall b sides-c00-l-ed5-sp-2013
Skyfall b sides-c00-l-ed5-sp-2013Skyfall b sides-c00-l-ed5-sp-2013
Skyfall b sides-c00-l-ed5-sp-2013
 
Nginx Essential
Nginx EssentialNginx Essential
Nginx Essential
 
vdocuments.site_nginx-essential.pdf
vdocuments.site_nginx-essential.pdfvdocuments.site_nginx-essential.pdf
vdocuments.site_nginx-essential.pdf
 
Website Performance Basics
Website Performance BasicsWebsite Performance Basics
Website Performance Basics
 
手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務
 
Cold fusion is racecar fast
Cold fusion is racecar fastCold fusion is racecar fast
Cold fusion is racecar fast
 
Connecting to Web Services on Android
Connecting to Web Services on AndroidConnecting to Web Services on Android
Connecting to Web Services on Android
 
Web Standards Support in WebKit
Web Standards Support in WebKitWeb Standards Support in WebKit
Web Standards Support in WebKit
 
Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011Deploying Plack Web Applications: OSCON 2011
Deploying Plack Web Applications: OSCON 2011
 
Openshift: Deployments for the rest of us
Openshift: Deployments for the rest of usOpenshift: Deployments for the rest of us
Openshift: Deployments for the rest of us
 
Managing and Visualizing your Replication Topologies with Orchestrator
Managing and Visualizing your Replication Topologies with OrchestratorManaging and Visualizing your Replication Topologies with Orchestrator
Managing and Visualizing your Replication Topologies with Orchestrator
 
ReplacingSquidWithATS
ReplacingSquidWithATSReplacingSquidWithATS
ReplacingSquidWithATS
 
Replacing Squid with ATS
Replacing Squid with ATSReplacing Squid with ATS
Replacing Squid with ATS
 
Svn to-git
Svn to-gitSvn to-git
Svn to-git
 
Weavework Flagger Demo- AWS Container Day 2019 Barcelona
Weavework Flagger Demo- AWS Container Day 2019 BarcelonaWeavework Flagger Demo- AWS Container Day 2019 Barcelona
Weavework Flagger Demo- AWS Container Day 2019 Barcelona
 
如何透過 Go-kit 快速搭建微服務架構應用程式實戰
如何透過 Go-kit 快速搭建微服務架構應用程式實戰如何透過 Go-kit 快速搭建微服務架構應用程式實戰
如何透過 Go-kit 快速搭建微服務架構應用程式實戰
 

Recently uploaded

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 

Recently uploaded (20)

Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 

There and back again: A story of a s

  • 1. There and back again A story of a simple HTTP request
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11. Whoami ● Colin Harrington ● colin.harrington@objectpartners.com ● @ColinHarrington
  • 12.
  • 13. Setup ● Tomcat 6.0.32 ● Grails 1.3.7 ● Spring 3.0.5 ● Spring Security 3.0.4 ● Sitemesh 2.4 ● Hibernate ..
  • 14. Detail / Source ● http://tomcat.apache.org/download-60.cgi ● CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,s uspend=n" ● git clone git://git.springsource.org/spring- security/spring-security.git ● git checkout 3.0.4.RELEASE ● svn co https://src.springframework.org/svn/spring- framework/tags/spring-framework-3.0.5.RELEASE/ ● git clone git://github.com/sitemesh/sitemesh2.git ● git checkout 9e97e40cf059b486567ef170ecac2ab01ea17bab (version 2.4)
  • 15.
  • 17. Tomcat Valve Examples ● org.apache.catalina.core.StandardEngineValve ● org.apache.catalina.valves.ErrorReportValve ● org.apache.catalina.core.StandardHostValve ● org.apache.catalina.core.StandardContextValve ● org.apache.catalina.core.StandardWrapperValve
  • 18. ApplicationFilterChain ● charEncodingFilter ● hiddenHttpMethod ● grailsWebRequest ● SpringSecurityFilterChain (configurable via the plugin) – Virtual Filter Chain ● sitemesh (GrailsPageFilter) ● urlMapping
  • 19. ApplicationFilterChain ● SpringSecurityFilterChain (configurable via the plugin) – SecurityContextPersistenceFilter – MutableLogoutFilter – RequestHolderAuthenticationFilter – SecurityContextHolderAwareRequestFilter – RememberMeAuthenticationFilter – AnonymousAuthenticationFilter – ExceptionTranslationFilter – FilterSecurityInterceptor (annotation, rules, etc.)
  • 20. Application Dispatch ● GrailsDispatcherServlet ● ModelAndView ● CompositeInterceptor ● Filters! – preHandle – postHandle – afterCompletion ● SimpleGrailsController
  • 21. Application Dispatch ● GrailsDispatcherServlet ● SimpleGrailsController ● Conventions ● Services ● Hibernate / GORM ● Etc.
  • 22. Views & layout ● GroovyPagesServlet ● Resolving Views ● DispatchServlet ● GrailsViewResolver ● GrailsPageView ● Sitemesh Processing
  • 24. Credits ● http://community.imaginefx.com/forums/storage/41/106334/3%20trolls.jpg ● http://ctsling.com/Photos/chain/chain%201.jpg ● http://image.made­in­china.com/2f0j00ZevTWYqGHtVA/API­Casting­Globe­Valve.jpg ● http://en.wikipedia.org/wiki/File:Tomcat­logo.svg ● http://4.bp.blogspot.com/­9ix7IiU1zPs/TdvYzKZiiQI/AAAAAAAADsI/q3C5kohTVKw/s1600/24gollumededlfeldt.jpg ● http://the­hobbitmovie.com/wp­content/uploads/2010/12/hobbit­map.jpg ● http://www.gamereplays.org/community/uploads/post­64773­1179078881.jpg ● http://cdn2.screenjunkies.com/wp­content/uploads/images/2010/LOTR%2520Gandalf%25204.jpg ● http://images.wikia.com/childrensbooks/images/6/6e/One_Ring.png ● http://www.comingsoon.net/nextraimages/hobbitdwarveslarge.jpg ● http://static.tumblr.com/elmigy1/Npylfcz3n/the­hobbit.jpg ● http://this­world­is.boldlygoingnowhere.org/andinet/wordpress/wp­content/gallery/smaug/smaug­2.jpg ● http://img­fan.theonering.net/rolozo/images/baker/sting.jpg ● http://www.theonering.com/images2­404/SamandShelob ● http://www.lotrmmorpg.com/maps/rivendale.jpg ● https://www.buybunn.com/media/catalog/product/cache/1/image/9df78eab33525d08d6e5fb8d27136e95/p/a/paper_filters_1.jpg ● http://www.thespecialistsltd.com/files/Retro_Dispatch_Radio.jpg ● http://world­the.com/wp­content/uploads/2011/07/View­From­Diamond­Head­Oahu­Hawaii.jpg